Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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中onCreateDialog出错_Android_Dialog_Nullpointerexception - Fatal编程技术网

Android中onCreateDialog出错

Android中onCreateDialog出错,android,dialog,nullpointerexception,Android,Dialog,Nullpointerexception,以下代码中的onCreateDialog()NullPointerException中有一个错误: import android.app.Activity; import android.app.Dialog; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button;

以下代码中的onCreateDialog()NullPointerException中有一个错误:

import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class More extends Activity{
    static int DIALOG_ID=0;
     Dialog dialog = null;
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.myfavourate);
        //showDialog(DIALOG_ID);

    }
    protected Dialog onCreateDialog(int id) {

        switch(id) {
        case 0:
            // do the work to define the pause Dialog

            dialog = new Dialog(this);
            dialog.setContentView(R.layout.more);
            dialog.setTitle("Please Select One:");
            Button btn_setting = (Button)findViewById(R.id.btn_more_setting);
            Button btn_about = (Button)findViewById(R.id.btn_more_about);
            Button btn_privacy = (Button)findViewById(R.id.btn_more_privacy);
            Button btn_cancel = (Button)findViewById(R.id.btn_more_cancel);
            btn_setting.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(More.this,SettingActivity.class);
                    startActivity(intent);
                }
            });

            btn_about.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(More.this,About.class);
                    startActivity(intent);

                }
            });

            btn_privacy.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Intent intent = new Intent(More.this,Privacy_Policy.class);
                    startActivity(intent);

                }
            });

            btn_cancel.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    More obj = new More();
                    obj.finish();
                }
            });
            break;

        default:
            dialog = null;
        }
        return dialog;
    }

}
修理

对其他按钮执行此操作


诀窍在于,当您简单地调用findViewById时,它会被调用用于活动,而不会让您的对话框按钮膨胀。相反,它们会膨胀到对话框中,您应该在对话框中搜索它们。

您应该指出引发nullpointerexception的位置。
Button btn_setting = (Button)findViewById(R.id.btn_more_setting);
Button btn_setting = (Button) dialog.findViewById(R.id.btn_more_setting);