gpt4 book ai didi

java - 为什么 `text`打开自定义对话框不显示?

转载 作者:可可西里 更新时间:2023-10-31 22:04:22 24 4
gpt4 key购买 nike

我觉得自己像个白痴。我从 here 复制了这个项目. zip 文件不会导入到 Android Studio 1.0.2。建议将其迁移到 Gradle,但我不知道该怎么做。 (我后来找到了这样做的链接,我无法实现它,它在这个烂摊子的底部。)

所以我创建了一个新项目并剪切并粘贴了 3 个 xml 和 1 个 java 文件。我终于得到了编译。

本来应该会显示下面的dialog,但是我运行的时候,没有显示text的文本,也就是“Android custom dialog例如”。它只显示图标;如 custom.xml 中所指定,右侧完全没有文本。我花了几个小时(我显然没有很好地掌握 Android java 或 xml 或连接——我正在研究它——但我看到了我希望在 java 和 xml 中看到的 TextView named text) 试图解决这个问题。我现在希望你们都能帮助我。

custom.xml 文件下面列出了我尝试过的(徒劳的)。

enter image description here

编辑——这是我所看到的:

enter image description here这是 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>

我删除了一个 />,您在 TextViewcustom.xml 中看到了两个。

我将 View 添加到 dialogBu​​tton.setOnClickListener 中,如下所示:

dialogButton.setOnClickListener(new View.OnClickListener() {

我注释掉了整个 dialogBu​​tton.setOnClickListener

我删除了 toRightOf...image 这行。

我从 custom.xml 中删除了所有对象,除了名为 textTextView 并从 MainActivity.java .

我对它进行了调试,text 包含它应该包含的文本,但没有显示。

一切都无济于事。

这是 appgradle.build:

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 时,我使用了这个位于`http://tools.android.com/tech-docs/new-build-system/migrating-from-intellij-projectsbuild.gradle 文件。 ',但它不喜欢这一行:

            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 的背景或字体的颜色。

关于java - 为什么 `text`打开自定义对话框不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29779887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com