我有一段代码,在一个AlertDialog中,我希望该对话框的EditText文本放在一个字符串中。我唯一的问题是,字符串只是得到了布局中定义的EditText的默认值,即使在我编辑AVD中的值时也是如此。
这是代码:
AlertDialog.Builder builder = new AlertDialog.Builder(YanonymousActivity.this);
LayoutInflater inflater = this.getLayoutInflater();
builder.setView(inflater.inflate(R.layout.addnode, null));
builder.setCancelable(true);
// mTextView = (TextView)findViewById(R.id.add_node_text);
builder.setPositiveButton("Add node", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
setContentView(R.layout.addnode);
mNodeName = (EditText)findViewById(R.id.add_node);
mNodeColor = (EditText)findViewById(R.id.add_node_color);
addNodeName = mNodeName.getText().toString();
addNodeColor = Integer.parseInt(mNodeColor.getText().toString(), 16);
if(mNodeName.getText().toString() == null || mNodeColor.getText().toString() == null) {
showtoast("No node name/color");
}
else {
final String actual_theme = YourWorldView.getTheme();
//final int value = Integer.parseInt(addNodeColor, 16);
for (YanoTheme t : YourWorldView.YanoThemes) {
if (t.getThemeName() == actual_theme) {
toastmessage = addNodeName + "\n" + addNodeColor;
showtoast("We did it, reddit");
YourWorldView.YanoThemes.get(0).addItem(addNodeName,addNodeColor);
}
}
}
答案 0 :(得分:0)
欢迎使用Stackoverflow。您可以获得对话框的视图。要从对话框的自定义布局中的EditText
获取文本,请在正面按钮的onClick侦听器中执行此操作:
@Override
public void onClick(DialogInterface dialog, int id) {
Dialog d = (Dialog) dialog;
EditText mNodeName = (EditText) d.findViewById(R.id.add_node);
String text = mNodeName.getText().toString();
//...
}
如果有帮助,请告诉我。
答案 1 :(得分:0)
如果我理解的是正确的那么你的问题是你检查editText是否为空或哪个是关于你提到的是它有默认值,这将始终使这个语句永远是假的if(mNodeName.getText().toString() == null || mNodeColor.getText().toString() == null)
因为你说editText
有一个默认值。