Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更新对话框中的edittext时,值会更新,但不会更新文本_Java_Android_Dialog - Fatal编程技术网

Java 更新对话框中的edittext时,值会更新,但不会更新文本

Java 更新对话框中的edittext时,值会更新,但不会更新文本,java,android,dialog,Java,Android,Dialog,我有一个显示在对话框中的edittext,但是后来(在对话框关闭之前)我更新了其中的值,但是当我这样做时,我可以从.gettext()读取正确的新值,但是edittext仍然是空的,为什么 这是我的代码: public void setText(String url) { response.setText("http://xxxx/" + url); response.invalidate(); response.selectAll(); } 我觉得我什么都试过了,找了

我有一个显示在对话框中的edittext,但是后来(在对话框关闭之前)我更新了其中的值,但是当我这样做时,我可以从.gettext()读取正确的新值,但是edittext仍然是空的,为什么

这是我的代码:

public void setText(String url) {
    response.setText("http://xxxx/" + url);
    response.invalidate();
    response.selectAll();
}
我觉得我什么都试过了,找了几个小时的答案,但我试过的都没用(

这个问题有没有什么快速的解决方案,或者我真的需要重新绘制整个自定义对话框?

如果你看得简单

一切都很好

    EditText input;
@Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        setContentView(R.layout.main);


        input = new EditText(this); 

        AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 
        alertDialog.setTitle("Title"); 
        alertDialog.setMessage("Message"); 
        alertDialog.setView(input, 10, 0, 10, 0); // 10 spacing, left and right 

        alertDialog.show(); 

        input.setText("Raja");
        setText("Hindustani");

    }

    public void setText(String url) { 
        input.setText("http://xxxx/" + url); 
        input.invalidate(); 
        input.selectAll(); 
    } 
这组代码工作完全正常..没有问题..请再次检查

你需要把你的完整代码放在这里,让我们知道你是如何解决这个问题的

AlertDialog alertDialog = new AlertDialog.Builder(this).create(); 
alertDialog.setTitle("Title"); 
alertDialog.setMessage("Message"); 

EditText input = new EditText(YourActivity.this);
input.setText("NAME");

alertDialog.setView(input, 10, 0, 10, 0); // 10 spacing, left and right 
alertDialog.setPositiveButton("ok", new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int whichButton) {
      //some_string_instance = input.getText().toString();
   }
});
alertDialog.setNegativeButton(R.string.alert_dialog_cancel, new DialogInterface.OnClickListener() {
   public void onClick(DialogInterface dialog, int whichButton) {

   }
});

alertDialog.show(); 
您可以使用带有两个按钮的警报对话框,并在单击“肯定”按钮时,将edittext的值保存到某个字符串变量,然后可以在以后的代码中使用它…假设您的方法是setText(某个字符串实例)


如果在某项任务完成后试图从单独的线程更改TextView的文本,则应使用Handler,否则可能会遇到奇怪的错误

EditText input;
Thread myWorkerThread;
AlertDialog alertDialog;

Handler successHandler = new Handler()
{
    @Override
    public void handleMessage(Message message)
    {
        setText("Success Message");
    }
};

public void setText(String url)
{
    input.setText("http://xxxx/" + url);
    input.invalidate();
    input.selectAll();
}

@Override
public void onCreate(Bundle icicle)
{
    super.onCreate(icicle);
    setContentView(R.layout.main);

    input = new EditText(this);

    myWorkerThread = new Thread()
    {
        public void run()
        {
            // do your tasks here

            // after task is done, call the handler
            successHandler.sendEmptyMessage(0);
        }
    };
}
现在,在开始myWokerThread之前,显示您的alertdialog

alertDialog = new AlertDialog.Builder(MyActivity.this).create();
alertDialog.setTitle("Title");
alertDialog.setMessage("Message");
alertDialog.setView(input, 10, 0, 10, 0); // 10 spacing, left and right
alertDialog.show();
myWorkerThread.start();

有漂亮的人吗?:(我回家后再做:)你确定文本颜色不透明吗?:)…在创建对话框的地方添加代码并设置text@cubsink您是否在事件侦听器中调用settext()(如onDialogClosed()或onClick())?您仍然不在家吗?密码先生,我回家后会把我的完整密码放在这里,因为它对我不起作用!恭喜兄弟。刚刚看到你的答案和个人资料。你真是太棒了。在36天内,我们非常运动,给出了446个答案,赢得了4k回购。你真的很棒。如果你有时间来聊天室分享你的知识,那就太好了。再一次,我必须说…良好的参与。。。