总结一下,我为我的对话框制作了一个自定义布局,里面有一个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;
}
}
答案 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()
来读取其中的数据。