我有问题。由于我是开发 Android 应用程序的新手,我想我没有正确理解所有概念。
问题是:
在我的对话框中,输入所有信息并按下“确定”按钮后,我想得到我刚刚输入的内容TextEdit
。但是当我试图EditText
通过我得到okButton.onClickListener
而不是实例时。findViewById(R.id.myTextEditId)
Null
这是一些代码:
对话框的 XML(我定义 EditText 的部分):
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:layout_marginBottom="4dp"
android:inputType="textMultiLine"
android:maxLines="3"
android:hint="@string/add_new_note_hint">
<requestFocus />
</EditText>
这是 NPE 所引用的代码:
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
View dialogView = getLayoutInflater().inflate(R.layout.add_note_dialog,null);
dialogBuilder.setTitle(R.string.add_dialog_title)
.setPositiveButton(R.string.add_dialog_pos_but, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EditText et = (EditText) findViewById(R.id.editText1); //this is where I get null instead of real instance.
}
})
为什么我会得到这个以及在某些回调方法中处理小部件数据的正确方法(最佳实践)是什么?(怎么修)
非常感谢您在我的问题上花时间!