Java 更新对话框中的edittext时,值会更新,但不会更新文本
我有一个显示在对话框中的edittext,但是后来(在对话框关闭之前)我更新了其中的值,但是当我这样做时,我可以从.gettext()读取正确的新值,但是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(); } 我觉得我什么都试过了,找了
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回购。你真的很棒。如果你有时间来聊天室分享你的知识,那就太好了。再一次,我必须说…良好的参与。。。