EditText仅显示默认值

时间:2014-11-06 22:22:55

标签: android

我有一段代码,在一个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);
                            }
                        }
                    }

2 个答案:

答案 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有一个默认值。