我感觉像个白痴。我从这里复制了这个项目。压缩文件不会导入Android Studio 1.0.2。建议是将其迁移到Gradle,但我不知道该怎么做。(我后来找到了这样做的链接。我无法实现它。它位于混乱的底部。)
因此,我创建了一个新项目,并剪切并粘贴了3xml
和1java
文件。我终于得到了编译。
可能会显示下面的对话框,但是当我运行它时,它没有显示的文本text
,即“ Android自定义对话框示例”。它只显示图标;完全没有指定的文字custom.xml
。我已经花了几个小时(我显然不太了解Android java或xml或连接-我正在研究它-但我看到了我希望在Java和xml中看到的TextView
named text
),试图解决这个问题。我现在希望大家能帮上忙。
我尝试了一下(徒劳)在custom.xml
文件下面。
编辑-在这里我看到的是:
这是AndroidManifest.xml
:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.dslomer64.android">
<application android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/ic_launcher"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
这是MainActivity.java
:
package com.dslomer64.android;
import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity {
final Context context = this;
private Button button;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button) findViewById(R.id.buttonShowCustomDialog);
// add button listener
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// custom dialog
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.custom);
dialog.setTitle("Title...");
// set the custom dialog components - text, image and button
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Android custom dialog example!");
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource(R.drawable.ic_launcher);
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
});
}
}
这是main.xml
。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/buttonShowCustomDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Custom Dialog" />
</LinearLayout>
这是custom.xml
:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ImageView
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="5dp" />
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="#FFF"
android:layout_toRightOf="@+id/image"/>/>
<Button
android:id="@+id/dialogButtonOK"
android:layout_width="100px"
android:layout_height="wrap_content"
android:text=" Ok "
android:layout_marginTop="5dp"
android:layout_marginRight="5dp"
android:layout_below="@+id/image"
/>
</RelativeLayout>
我去掉一个/>
,你看到两个custom.xml
中TextView
。
我添加View
到dialogButton.setOnClickListener
,如下所示:
dialogButton.setOnClickListener(new View.OnClickListener() {
我整个评论了dialogButton.setOnClickListener
。
我删除了这句话toRightOf...image
。
我从中删除了所有对象,但从中删除custom.xml
了已TextView
命名的text
连接代码MainActivity.java
。
我调试了它并text
包含了它应该显示的文本,但未显示。
一切都无济于事。
这是gradle.build
为了app
:
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
applicationId "com.dslomer64.android"
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.0.0'
}
我知道这对于有经验的Android程序员来说是微不足道的,但我只是找不到。而且我发现关于Android GUI并没有什么琐事。
我希望没人会从所有这些文件中创建一个项目。我希望缺少的连接对于经验丰富的Android程序员来说是显而易见的。
在尝试迁移到gradle时,我使用了build.gradle
位于http://tools.android.com/tech-docs/new-build-system/migrating-from-intellij-projects上的文件,但它不喜欢这行:
classpath 'com.android.tools.build:gradle:0.5.+'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
我拥有的gradle版本是2.2.1,但它既不喜欢也不喜欢:
classpath 'com.android.tools.build:gradle:2.2.1'
我在您的图片上看到了文字。的背景Dialog
为白色,并且您将textColor
设置为#FFF
,这就是为什么您看不到它的原因。更改Dialog
字体的背景或颜色。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句