无法在Android中实现自定义对话框的代码

时间:2011-10-28 05:55:52

标签: android textview android-button customdialog

我想在Android中实现自定义对话框。但是,当我自己尝试时,我无法运行我的代码。

我在Eclipse中的这些语句中出错:
1)Button button1main = (Button) findViewById(R.id.*btn1*);

2)TextView text = (TextView) dialog.findViewById(R.id.*txt3*);

我的Android代码是:

package com.example;

import android.app.Activity;
import android.app.Dialog;
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 Main2 extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.front);

        Button button1main = (Button) findViewById(R.id.btn1);
        button1main.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                Dialog dialog = new Dialog(Main2.this);
                dialog.setContentView(R.layout.maindialog);
                dialog.setTitle("This is my custom dialog box");
                dialog.setCancelable(true);

                TextView text = (TextView) dialog.findViewById(R.id.txt3);
                text.setText(R.string.lots_of_text); 

                Button button = (Button) dialog.findViewById(R.id.Button01);
                button.setOnClickListener(new OnClickListener() {

                    public void onClick(View v) {
                        finish();
                    }
                });

                dialog.show();
            }

        });
    } 
}

这是我的xml: front.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    android:id="@+id/RelativeLayout01"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">


  <TextView
     android:id="@+id/txt3"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="This is my main activity, from here, I want to display a dialog, after the user clicked the button below this text."/>

  <Button
      android:layout_height="wrap_content"
      android:layout_below="@+id/txt3"
      android:layout_width="wrap_content"
      android:id="@+id/btn1"
      android:text="Hey! There is more..."/>

</RelativeLayout>

maindialog.xml

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout>

  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content" android:layout_height="wrap_content">

  <ScrollView>
    android:id="@+id/ScrollView01"
    android:layout_width="wrap_content"
    android:layout_height="200px">

    <TextView>
      android:text="@+id/txt3"
      android:layout_width="wrap_content" android:layout_height="wrap_content">
    </TextView>

  </ScrollView>


  <Button>
    android:id="@+id/Button01"
    android:layout_below="@id/ScrollView01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:text="Cancel"
  </Button>

</RelativeLayout>

在我删除上述语句中的红线错误之前,我无法在Eclipse中运行我的代码。有人可以帮助我吗?

由于

1 个答案:

答案 0 :(得分:3)

xml语法中存在错误。

<RelativeLayout>  <- this is wrong
    android:id="@+id/RelativeLayout01&quot; 
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android">

您需要删除“&gt;” ,这适用于所有元素,而不仅仅是相对布局

<RelativeLayout
    android:id="@+id/RelativeLayout01&quot; 
    android:layout_width="fill_parent"  
    android:layout_height="fill_parent" 
    xmlns:android="http://schemas.android.com/apk/res/android">