我有一个自定义对话框,其中包含 EditText 和 Button。在我的对话框中性按钮的 onClick 方法中,我想从输入到 EditText 中的内容创建一个新字符串。
我正在做的是在按下菜单按钮时膨胀菜单。菜单按钮显示带有 2 个选项的 AlertDialogs。当在 AlertDialog 中选择一个选项时,会创建另一个选项,其中包含一个 EditText 询问名称。当我尝试“String name = nameOfEditText.getText().toString();”时出现空指针错误
这是代码
// creation of the dialog
Builder mBuilder = new AlertDialog.Builder(this);
LayoutInflater inflater = (LayoutInflater) this.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout= inflater.inflate(R.layout.custom_dialog, (ViewGroup) findViewById(R.id.RelativeLayout1));
mBuilder.setNeutralButton("Add", new AddOnClickListener());
mBuilder.setView(layout);
Dialog mDialog = mBuilder.create();
mDialog.show();
nameOfLocalEditText = (EditText) findViewById(R.id.name);
Button dialogButton = (Button) mDialog.findViewById(R.id.button1);
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent imp = new Intent();
imp.setType("file/*");
imp.setAction(Intent.ACTION_GET_CONTENT);
imp.addCategory(Intent.CATEGORY_OPENABLE);
startActivityForResult(imp, 0);
}
});
现在这里是 AddOnClickListener() 方法。nameOfLocalEditText 是包含这些方法的类的本地 EditText。
private final class AddOnClickListener implements DialogInterface.OnClickListener {
public void onClick(DialogInterface dialog, int which) {
String s = nameOfLocalEditText.getText().toString();
}
}
谁能告诉我为什么我的应用程序强制在制作 String 时关闭?
这是 custom_dialog 的 xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="16dp"
android:text="Get File" />
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/button1"
android:layout_centerHorizontal="true"
android:layout_marginTop="18dp"
android:ems="10" >
<requestFocus />
</EditText>
</RelativeLayout>
这是 logcat 错误消息
05-24 23:27:27.166: E/AndroidRuntime(595): FATAL EXCEPTION: main
05-24 23:27:27.166: E/AndroidRuntime(595): java.lang.NullPointerException
05-24 23:27:27.166: E/AndroidRuntime(595): at com.akonwi.listSyllabi.ListSyllabiActivity$AddOnClickListener.onClick(ListSyllabiActivity.ja va:145)
05-24 23:27:27.166: E/AndroidRuntime(595): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166)
05-24 23:27:27.166: E/AndroidRuntime(595): at android.os.Handler.dispatchMessage(Handler.java:99)
05-24 23:27:27.166: E/AndroidRuntime(595): at android.os.Looper.loop(Looper.java:137)
05-24 23:27:27.166: E/AndroidRuntime(595): at android.app.ActivityThread.main(ActivityThread.java:4424)
05-24 23:27:27.166: E/AndroidRuntime(595): at java.lang.reflect.Method.invokeNative(Native Method)
05-24 23:27:27.166: E/AndroidRuntime(595): at java.lang.reflect.Method.invoke(Method.java:511)
05-24 23:27:27.166: E/AndroidRuntime(595): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-24 23:27:27.166: E/AndroidRuntime(595): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-24 23:27:27.166: E/AndroidRuntime(595): at dalvik.system.NativeStart.main(Native Method)