Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 单击按钮关闭活动_Android_Button_Dialog_Cancel Button - Fatal编程技术网

Android 单击按钮关闭活动

Android 单击按钮关闭活动,android,button,dialog,cancel-button,Android,Button,Dialog,Cancel Button,我的应用程序中有以下代码: FloatingActionButton addBlogButton = (FloatingActionButton) findViewById(R.id.addBlog); addBlogButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { final Dialog addBlog = new

我的应用程序中有以下代码:

FloatingActionButton addBlogButton = (FloatingActionButton) findViewById(R.id.addBlog);
addBlogButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        final Dialog addBlog = new Dialog(BlogLister.this);
        addBlog.setContentView(R.layout.dialog_addblog);
        addBlog.setTitle("Enter blog details : ");
        blogTitle = (EditText) findViewById(R.id.blogTitle);
        blogURL = (EditText) findViewById(R.id.blogURL);
        addIt = (Button) findViewById(R.id.addIt);
        cancelButton = (Button) findViewById(R.id.cancel);
        addBlog.show();

        cancelButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                addBlog.dismiss();
            }
        });
    }
});
但是,当我单击应用程序中的
addblog按钮时,它会关闭我的活动,而不是显示对话框

但当我删除:

cancelButton.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v) {
        addBlog.dismiss();
    }
});
根据我的代码,它工作正常

LOGCAT错误:

03-13 19:17:40.048 27760-27760/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                   Process: com.innovapp.blogreadr, PID: 27760
                                                   java.lang.NullPointerException
                                                       at com.innovapp.blogreadr.BlogLister$1.onClick(BlogLister.java:37)
                                                       at android.view.View.performClick(View.java:4444)
                                                       at android.view.View$PerformClick.run(View.java:18440)
                                                       at android.os.Handler.handleCallback(Handler.java:733)
                                                       at android.os.Handler.dispatchMessage(Handler.java:95)
                                                       at android.os.Looper.loop(Looper.java:136)
                                                       at android.app.ActivityThread.main(ActivityThread.java:5052)
                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                       at java.lang.reflect.Method.invoke(Method.java:515)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
                                                       at dalvik.system.NativeStart.main(Native Method)
谁能告诉我问题是什么以及如何解决


编辑我所说的“关闭”是指android返回按钮的工作方式,它将我带回到以前的活动

更改:

cancelButton = (Button) findViewById(R.id.cancel);
致:

您正在活动的根视图上调用
findViewById(int-id)
。它返回null,因为您没有任何具有此id的视图。若要使其非null,请为其提供一个引用并调用更改:

cancelButton = (Button) findViewById(R.id.cancel);
致:

您正在活动的根视图上调用
findViewById(int-id)
。它返回null,因为您没有任何具有此id的视图。若要使其非null,请为其提供一个引用并调用

谁能告诉我问题是什么以及如何解决

很难从提供的代码片段中判断是什么导致了这种行为,因此答案是“可能不是”

更新: 正如@Malwinder提到的,您应该在
对话框中查找ID为“取消”的
按钮,而不是在“托管”
活动中查找

由于您的
对话框
实例似乎有明确定义的用途(添加博客条目?),我建议您将该代码移动到单独的类中,以便更容易管理和调试。DialogFragment
类似乎是您想要实现的目标的最佳选择。读一读这本书

谁能告诉我问题是什么以及如何解决

很难从提供的代码片段中判断是什么导致了这种行为,因此答案是“可能不是”

更新: 正如@Malwinder提到的,您应该在
对话框中查找ID为“取消”的
按钮,而不是在“托管”
活动中查找


由于您的
对话框
实例似乎有明确定义的用途(添加博客条目?),我建议您将该代码移动到单独的类中,以便更容易管理和调试。DialogFragment
类似乎是您想要实现的目标的最佳选择。读一读这本书

你说它关闭是什么意思?发布日志我所说的“关闭”是指android后退按钮的工作方式,它会将我带回到以前的活动logcat中是否有任何错误??logcat正在刷新,因此我没有看到错误。。发布错误..关闭是什么意思?发布日志我所说的“关闭”是指android后退按钮的工作方式,它会将我带回到以前的活动logcat中是否有任何错误??logcat正在刷新,因此我没有看到错误。。发布错误..谢谢!修好了,你能解释一下为什么要这么做吗?再次谢谢你,伙计!有道理!修好了,你能解释一下为什么要这么做吗?再次谢谢你,伙计!有道理