如何从对话框中的EditText视图捕获信息?

时间:2016-02-22 02:59:54

标签: java android xml layout android-edittext

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

1)实例化一个“new”EditText(以防止空异常),AND

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

4行COMMENTED代码是我不确定使用哪些代码...

感谢任何帮助,谢谢!

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;
    }

}

1 个答案:

答案 0 :(得分:0)

将编辑文本定义为全局变量(在功能之外),以便您可以随意使用它。然后在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()来读取其中的数据。