Android 对话框中按钮的问题

Android 对话框中按钮的问题,android,android-layout,Android,Android Layout,我有一个显示几个按钮的自定义对话框。这个想法是要有一个可滚动的对话框,人们可以选择一个数字或字母从0到9,或0到F或0到Z 因此,我的第一个问题是如何通过代码而不是xml添加这些按钮,因为每次都有不同数量的按钮。即使是最简单的代码也会崩溃,所以我可能没有做任何正确的事情 另外,当我点击按钮说找不到onClick函数时,我用一些xml按钮编写的代码也会崩溃。正如您所看到的,在我的按钮xml中有android:onClick=“onClickDialogbutton”,该函数确实存在于我的java代

我有一个显示几个按钮的自定义对话框。这个想法是要有一个可滚动的对话框,人们可以选择一个数字或字母从0到9,或0到F或0到Z

因此,我的第一个问题是如何通过代码而不是xml添加这些按钮,因为每次都有不同数量的按钮。即使是最简单的代码也会崩溃,所以我可能没有做任何正确的事情

另外,当我点击按钮说找不到onClick函数时,我用一些xml按钮编写的代码也会崩溃。正如您所看到的,在我的按钮xml中有android:onClick=“onClickDialogbutton”,该函数确实存在于我的java代码中,但它仍然崩溃

希望有人能看看代码,并帮助我添加按钮编程,让onClick的工作

这是我的密码:

DialogTestActivity.java:

package com.test.dialog;
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;
import android.widget.LinearLayout;
public class DialogTestActivity extends Activity {
    Dialog dialog;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    public void onClickStartDialog( View view ) {
        dialog = new Dialog( this );
        dialog.requestWindowFeature( Window.FEATURE_NO_TITLE );
        dialog.setContentView( R.layout.dialog );
        dialog.setCancelable( true );
        dialog.show();
        // I here wish to add buttons through code and not xml.
        // This gives an error as it is now.
        Button button = new Button( this );
        ( ( LinearLayout )findViewById( R.id.Buttons ) ).addView( button );
    }
    public void onClickDialogButton( View view ) {
        dialog.dismiss();
    }
}
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:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:onClick="onClickStartDialog"
        android:text="Start Dialog" />
</LinearLayout>

Dialog.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="54dip"
    android:layout_height="150dip"
    android:gravity="center" >
    <ScrollView
        android:layout_width="48dip"
        android:layout_height="144dip" >
        <LinearLayout
            android:id="@+id/Buttons"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:orientation="vertical" >
            <Button
                android:id="@+id/ButtonId0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:onClick="onClickDialogbutton"
                android:text="0"
                android:textSize="32dip" />
            <Button
                android:id="@+id/ButtonId1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:onClick="onClickDialogbutton"
                android:text="1"
                android:textSize="32dip" />
            <Button
                android:id="@+id/ButtonId2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_horizontal"
                android:onClick="onClickDialogbutton"
                android:text="2"
                android:textSize="32dip" />
            </LinearLayout>
    </ScrollView>
</RelativeLayout>


您可能需要在
对话框中调用
findViewById
。只需在
活动
中调用
findViewById
即可尝试查找活动中当前显示的具有指定id的视图或子视图。在这种情况下,该视图或子视图可能返回
null
,从而导致崩溃。请使用
对话框重试。findViewById…

请发布崩溃发生时从logcat获得的异常堆栈跟踪