0

我有一个按钮,它会弹出一个带有 OK 按钮的对话框,当我单击 OK 按钮时,我得到了一个 nullpointerexception。有谁知道出了什么问题?

这是我的java代码。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.mylist);

    myListView = (ListView)findViewById(R.id.list);
    new GetStuff().execute();

    Button importButton = (Button)findViewById(R.id.doButton);
    importButton.setEnabled(false);
    importButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            final Dialog pwdDialog = new Dialog(context);
            pwdDialog.setContentView(R.layout.pwdentry);
            pwdDialog.setTitle("Enter password");
            TextView pwdText = (TextView)pwdDialog.findViewById(R.id.pwdText);
            pwdText.setText("Enter password");
            Button okBut = (Button)findViewById(R.id.okBut);
            okBut.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    pwdDialog.dismiss();
                }
            });
            pwdDialog.show();
        }
    });
}

这是 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"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/pwdText"
        android:layout_width="fill_parent"
        android:layout_height="50dip"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="Enter password"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/pwdEntry"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/pwdText"
        android:ems="10"
        android:inputType="numberPassword" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/okBut"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="100px"
        android:layout_height="wrap_content"
        android:layout_below="@+id/pwdEntry"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="5dp"
        android:layout_marginRight="5dp"
        android:text="OK" />

</RelativeLayout>

谢谢!

4

2 回答 2

2

问题是okBut空的

 Button okBut = (Button)findViewById(R.id.okBut);

你需要把它变成

 Button okBut = (Button)pwdDialog.findViewById(R.id.okBut);
于 2013-08-30T02:09:24.630 回答
0

R.id.okBut在这里,您使用主布局中的 id 检索 Button R.layout.mylist

Button okBut = (Button)findViewById(R.id.okBut);
于 2013-08-30T02:18:30.017 回答