android - 带有按钮和 onClick 监听器的对话框抛出异常

标签 android exception button dialog crash

我编写了一个显示有 2 个 TextView 和 2 个按钮的对话框。 我也用谷歌搜索了那个问题,但我没有找到任何可以解决我的问题的东西。 这是一些代码:

case R.id.open:

          openDialog=new Dialog(this);
          openDialog.setContentView(R.layout.open_dialog);

          openDialog.setTitle(head);
          openDialog.setCancelable(true);

    Button open_cancel=(Button)findViewById(R.id.open_cancel);
          open_cancel.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                openDialog.cancel();
            }
        });

但我无法显示带按钮的对话框。 如果我在没有这些行的情况下调用它,就没有问题:

    Button open_cancel=(Button)findViewById(R.id.open_cancel);
          open_cancel.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                openDialog.cancel();
            }
        });

这是 XML 文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:id="@+id/open_dialog"
      android:orientation="vertical"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:padding="10dp"
      >    
    <EditText android:id="@+id/open_head"
              android:layout_width="fill_parent"
              android:layout_height="50dp"
              android:text="ojfpojew ojr pojr"              
              />
    <EditText android:id="@+id/open_note"
              android:layout_width="fill_parent"
              android:text="oijpojepojpotjpotejpe ojtpojtpo ewpoj tpojt pp jpojtpoj etpoj poj poj t"
              android:layout_height="150dp"              
              />
    <Button android:id="@+id/open_edit"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="edit"
            />
    <Button android:id="@+id/open_cancel"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="cancel"
           />    
</LinearLayout>

我真的不明白为什么这行不通...... 这是错误日志,如果有帮助的话:

01-05 16:43:51.004: D/dalvikvm(2336): GC freed 1010 objects / 70136 bytes in 75ms
01-05 16:43:51.204: D/dalvikvm(2336): GC freed 91 objects / 3664 bytes in 53ms
01-05 16:43:51.494: D/dalvikvm(2336): GC freed 132 objects / 6240 bytes in 62ms
01-05 16:43:51.674: D/dalvikvm(2336): GC freed 58 objects / 2312 bytes in 56ms
01-05 16:43:51.944: D/dalvikvm(2336): GC freed 147 objects / 9128 bytes in 63ms
01-05 16:43:52.383: D/ViewFlipper(2336): updateRunning() mVisible=true, mStarted=false, mUserPresent=true, mRunning=false
01-05 16:44:00.973: D/dalvikvm(2336): GC freed 25495 objects / 1393728 bytes in 88ms
01-05 16:44:02.644: D/dalvikvm(2336): GC freed 45722 objects / 2044568 bytes in 102ms
01-05 16:44:04.424: I/Resources(2336): Loaded time zone names for en in 1591ms.
01-05 16:44:06.834: D/dalvikvm(2336): GC freed 36788 objects / 1674624 bytes in 102ms
01-05 16:44:11.243: D/AndroidRuntime(2336): Shutting down VM
01-05 16:44:11.263: W/dalvikvm(2336): threadid=3: thread exiting with uncaught exception (group=0x4001b188)
01-05 16:44:11.263: E/AndroidRuntime(2336): Uncaught handler: thread main exiting due to uncaught exception
01-05 16:44:11.273: E/AndroidRuntime(2336): java.lang.NullPointerException
01-05 16:44:11.273: E/AndroidRuntime(2336):     at producteev.push.Producteev_pushActivity.onContextItemSelected(Producteev_pushActivity.java:247)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at android.app.Activity.onMenuItemSelected(Activity.java:2174)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at com.android.internal.policy.impl.PhoneWindow$ContextMenuCallback.onMenuItemSelected(PhoneWindow.java:2731)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at com.android.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:139)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at com.android.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:855)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at com.android.internal.view.menu.MenuDialogHelper.onClick(MenuDialogHelper.java:129)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at com.android.internal.app.AlertController$AlertParams$3.onItemClick(AlertController.java:884)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at android.widget.AdapterView.performItemClick(AdapterView.java:284)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at android.widget.ListView.performItemClick(ListView.java)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at android.widget.AbsListView$PerformClick.run(AbsListView.java:1640)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at android.os.Handler.handleCallback(Handler.java:587)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at android.os.Handler.dispatchMessage(Handler.java:92)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at android.os.Looper.loop(Looper.java:123)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at android.app.ActivityThread.main(ActivityThread.java:4363)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at java.lang.reflect.Method.invokeNative(Native Method)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at java.lang.reflect.Method.invoke(Method.java:521)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
01-05 16:44:11.273: E/AndroidRuntime(2336):     at dalvik.system.NativeStart.main(Native Method)
01-05 16:44:11.293: I/dalvikvm(2336): threadid=7: reacting to signal 3
01-05 16:44:11.323: I/dalvikvm(2336): Wrote stack trace to '/data/anr/traces.txt'
01-05 16:44:13.383: I/Process(2336): Sending signal. PID: 2336 SIG: 9

最佳答案

试试这个,

Button open_cancel=(Button)openDialog.findViewById(R.id.open_cancel); 

关于android - 带有按钮和 onClick 监听器的对话框抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8800624/

相关文章:

android - 如何找到所有可用 Android 手机的最小和最大屏幕高度/宽度比?

android - 当用户在 TextView 上复制或粘贴时,我可以 Hook 吗?

android - ActionBarSherlock v3.4.2 构建错误

c# - 为什么相同的异常有不同的错误代码?

java - 输入不匹配异常

javascript - 在 vuetify 中,如何在禁用按钮时显示工具提示

java - 单击按钮时显示/隐藏 ImageView

java - 如何在保持宽高比的同时填充应用程序小部件中的 ImageView?

Python:捕获通用(任何)异常时,如何将异常名称存储在变量中?

java - 我在 Netbeans 图形模式下的 Java 代码中遇到问题