Невозможно реализовать код для пользовательского диалога в Android - PullRequest
0 голосов
/ 28 октября 2011

Я хочу реализовать Custom Dialog в 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 Ответ

3 голосов
/ 28 октября 2011

В синтаксисе 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">

Вам необходимо удалить «>», это относится ко всем элементам, а не только к относительному расположению

<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">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...