我使用自定义对话框从我的customdialog.xml包含一个tableLayout填充row.xml。通常这段代码在一个活动类上工作,但作为一个对话框,当我添加一个tableLayout并插入一行时,应用程序崩溃。如何达到它?android tableLayout自定义对话框
代码:
private void customDialog(){
// custom dialog
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.customdialog);
TableRow row = (TableRow)LayoutInflater.from(this).inflate(R.layout.row, null);
((TextView)row.findViewById(R.id.textNom)).setText("testing...");
TableLayout llistaLlistes = (TableLayout)this.findViewById(R.id.llistaLlistes);
llistaLlistes.addView(row);
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButtonOK);
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
崩溃日志:
11-25 18:39:57.509: E/AndroidRuntime(27839): FATAL EXCEPTION: main
11-25 18:39:57.509: E/AndroidRuntime(27839): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.appdev.stpro/com.appdev.stpro.StPROActivity}: java.lang.NullPointerException
11-25 18:39:57.509: E/AndroidRuntime(27839): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
11-25 18:39:57.509: E/AndroidRuntime(27839): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
11-25 18:39:57.509: E/AndroidRuntime(27839): at android.app.ActivityThread.access$600(ActivityThread.java:127)
11-25 18:39:57.509: E/AndroidRuntime(27839): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
11-25 18:39:57.509: E/AndroidRuntime(27839): at android.os.Handler.dispatchMessage(Handler.java:99)
11-25 18:39:57.509: E/AndroidRuntime(27839): at android.os.Looper.loop(Looper.java:137)
11-25 18:39:57.509: E/AndroidRuntime(27839): at android.app.ActivityThread.main(ActivityThread.java:4441)
11-25 18:39:57.509: E/AndroidRuntime(27839): at java.lang.reflect.Method.invokeNative(Native Method)
11-25 18:39:57.509: E/AndroidRuntime(27839): at java.lang.reflect.Method.invoke(Method.java:511)
11-25 18:39:57.509: E/AndroidRuntime(27839): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
11-25 18:39:57.509: E/AndroidRuntime(27839): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
11-25 18:39:57.509: E/AndroidRuntime(27839): at dalvik.system.NativeStart.main(Native Method)
11-25 18:39:57.509: E/AndroidRuntime(27839): Caused by: java.lang.NullPointerException
11-25 18:39:57.509: E/AndroidRuntime(27839): at com.appdev.stpro.StPROActivity.customDialog(StockPROActivity.java:236)
11-25 18:39:57.509: E/AndroidRuntime(27839): at com.appdev.stpro.StPROActivity.onCreate(StockPROActivity.java:212)
11-25 18:39:57.509: E/AndroidRuntime(27839): at android.app.Activity.performCreate(Activity.java:4465)
11-25 18:39:57.509: E/AndroidRuntime(27839): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
11-25 18:39:57.509: E/AndroidRuntime(27839): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
如果布局是必要的,请让我知道。
嗯肯定!我喜欢这个选项。然后你可以处理结果调用startActivityForResult()。这是完全灵活的。谢谢! – Jaume
不客气!很高兴我能帮上忙 –