Search code examples
androidtextviewandroid-buttoncustomdialog

Unable to implement code for Custom Dialog in Android


I want to implement Custom Dialog in Android. However , when I tried it on my own I am unable to run my code.

I am getting an error in these statements in Eclipse:
1) Button button1main = (Button) findViewById(R.id.*btn1*);

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

My Android code is :

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();
            }

        });
    } 
}

Here are my xml's : 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>

I am not able to run my code in Eclipse until I remove those red line errors in the above mentioned statements..Can someone help me ?

Thanks


Solution

  • You have errors in your xml syntax.

    <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">
    

    You need to remove ">" , this applies to all elements, not only relative layout

    <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">