如何从对话框中的“编辑文本”视图中捕获信息



总而言之,我为我的对话框做了一个自定义布局,里面有一个EditText,我想从中捕获输入的信息。但我不确定如何两者兼而有之:

1) 实例化"新"编辑文本(以防止空异常),以及

2)将此新的EditText与其在布局中的ID相关联(R.id.edit_name),以便Android知道从对话框内的EditText ACCESS获取信息

4行注释代码是我不确定要使用哪些代码的地方......

任何帮助不胜感激,谢谢!

public class MainActivity extends AppCompatActivity {
     private Button button;
     private Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_inventory);
}
public void onClickAddItem(View view) {
    final Dialog dialog = new Dialog(this);
    dialog.setContentView(R.layout.dialog_layout);
    // final EditText nameInput = new EditText(this);
    // nameInput.findViewById(R.id.edit_name);
    // EditText nameInput = new EditText(context);
    // final EditText nameInput = (EditText)findViewById(R.id.edit_name);

    final LinearLayout wholelist = (LinearLayout) findViewById (R.id.wholelist);
    button = (Button) findViewById(R.id.Adder);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Button OKbutton = (Button) dialog.findViewById(R.id.OK);
            OKbutton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                                         wholelist.addView(createNewTextView(nameInput.getText().toString()));

                    dialog.dismiss();
                }
            });
            dialog.show();
        }
    });
}
    private TextView createNewTextView(String text) {
        final TextView textView = new TextView(this);
        textView.setText(text);
        return textView;
    }

}

将编辑文本定义为全局变量(在函数的外部),以便您可以在任何需要的地方使用它。然后在onCreate函数中初始化(引入)它。

EditText nameInput; // define your edit text
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.content_inventory);
    nameInput = (EditText) findViewById(R.id.edit_name); // initialize your edit text
.
.
.
nameInput.getText().toString() // get data inside your edit text

当你需要读取其中的信息时,只需使用这个:nameInput.getText().toString()读取其中的数据。

最新更新