Android中onCreateDialog出错
以下代码中的onCreateDialog()NullPointerException中有一个错误: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;
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);