Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从AlertDialog获取子视图_Android_Android Layout - Fatal编程技术网

Android 从AlertDialog获取子视图

Android 从AlertDialog获取子视图,android,android-layout,Android,Android Layout,我有以下AlertDialog及其onClick方法: final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); alertDialog.setView(View.inflate(this, R.layout.barcode_alert, null)); alertDialog.setPositiveButton("Search", new DialogInterface.OnClickListener() {

我有以下
AlertDialog
及其
onClick
方法:

final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setView(View.inflate(this, R.layout.barcode_alert, null));

alertDialog.setPositiveButton("Search", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(@NotNull DialogInterface dialog, int which) {
        // how to get editTextField.getText().toString(); ??
        dialog.dismiss();
    }
});
我在对话框(
barcode\u alert.XML
)中膨胀的XML包含一个
EditText
字段,我需要在用户点击搜索按钮后获取其字符串值。 我的问题是,如何获取该字段的引用,以便获取其文本字符串?

试试这个

final AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
final View v = getLayoutInflater().inflate(this, R.layout.barcode_alert, null);
final EditText editTextField = (EditText) v.findViewById(R.id.edit_text);
editTextField.setOnClickListener(MyActivity.this);
alertDialog.setView(v);

alertDialog.setPositiveButton("Search", new DialogInterface.OnClickListener() {
@Override
public void onClick(@NotNull DialogInterface dialog, int which) {
    String enteredValue = editTextField.getText().toString(); // get the text from edit text
    dialog.dismiss();
 }
});

您可以膨胀视图并获取对变量的引用:

View v = View.inflate(this, R.layout.barcode_alert, null);
您可以使用
findViewById
获取视图的引用。确保您的变量是最终变量或成员变量。否则,您无法在onClickListener中访问它

final EditText editText = (EditText)v.findViewById(R.id.your_edit_text

就这样!我缺少从视图中拉出
EditText
的功能。
final EditText editText = (EditText)v.findViewById(R.id.your_edit_text