显示警报对话框 Android
Display AlertDialog Android
我试图用 android 显示一个简单的对话框,但它在开始时崩溃了。
MainActivity.java :
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MessageDialog messageDialog = new MessageDialog();
Dialog dialog = messageDialog.onCreateDialog(savedInstanceState);
dialog.show();
}
}
MessageDialog.java :
public class MessageDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
FragmentActivity activity = getActivity();
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setMessage("Hello World").setPositiveButton("0K", null);
return builder.create();
}
}
错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.*****.*****, PID: 7458
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.*****.*****/com.example.*****.*****.MainActivity}:
java.lang.NullPointerException: Attempt to invoke virtual method
'android.content.res.Resources$Theme
android.content.Context.getTheme()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2924)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2985)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635)
at android.os.Handler.dispatchMessage(Handler.java:102)
你为什么打电话给 "onCreateDialog"?
使用以下代码显示对话框片段:
MessageDialog dialog = new MessageDialog();
dialog.show(getSupportFragmentManager(), "fragment_name");
(第二个参数是分片的tag,以后可以通过"FragmentManager#findFragmentByTag"获取分片)
我试图用 android 显示一个简单的对话框,但它在开始时崩溃了。
MainActivity.java :
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MessageDialog messageDialog = new MessageDialog();
Dialog dialog = messageDialog.onCreateDialog(savedInstanceState);
dialog.show();
}
}
MessageDialog.java :
public class MessageDialog extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
FragmentActivity activity = getActivity();
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
builder.setMessage("Hello World").setPositiveButton("0K", null);
return builder.create();
}
}
错误:
E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.*****.*****, PID: 7458 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.*****.*****/com.example.*****.*****.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources$Theme android.content.Context.getTheme()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2924) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2985) at android.app.ActivityThread.-wrap14(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1635) at android.os.Handler.dispatchMessage(Handler.java:102)
你为什么打电话给 "onCreateDialog"?
使用以下代码显示对话框片段:
MessageDialog dialog = new MessageDialog();
dialog.show(getSupportFragmentManager(), "fragment_name");
(第二个参数是分片的tag,以后可以通过"FragmentManager#findFragmentByTag"获取分片)