【发布时间】:2013-07-25 01:39:21
【问题描述】:
我有一个自定义对话框。其中一个editText id在那里,我正在通过editText读取输入,将输入放入一个字符串。此代码后跟一个线程(子)来处理一个 url。我想在提到的线程中使用这个字符串。但是在我输入editText之前线程被调用了。如何动态使用线程内用户输入中的相同文本?提前谢谢..
public void onClick(查看 v) {
switch (v.getId())
{
case R.id.i1:
MyDevice.getInstance().currentUserImageId=R.drawable.jerry1;
MyDevice.getInstance().userName="You";
MyDevice.getInstance().facebook=0;
this.finish();
break;
case R.id.i2:
MyDevice.getInstance().currentUserImageId=R.drawable.chaplin1;
MyDevice.getInstance().userName="You";
MyDevice.getInstance().facebook=0;
this.finish();
break;
case R.id.i3:
MyDevice.getInstance().currentUserImageId=R.drawable.budy;
MyDevice.getInstance().userName="You";
MyDevice.getInstance().facebook=0;
this.finish();
break;
case R.id.facebook:
final Dialog dialog = new Dialog(this);
dialog.setContentView(R.layout.usernamefbdialog);
dialog.setTitle("Enter Facebook Username");
Button dialogButton = (Button) dialog.findViewById(R.id.done);
// if button is clicked, close the custom dialog
dialogButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v)
{
EditText edit=(EditText)dialog.findViewById(R.id.username);
text=edit.getText().toString();
dialog.dismiss();
}
});
dialog.show();
Thread thread = new Thread(new Runnable()
{
@Override
public void run()
{
try
{
MyDevice.getInstance().bitmap=getUserPic(text);
MyDevice.getInstance().facebook=1;
ImageView facebookImg=(ImageView) findViewById(R.id.facebookimg);
facebookImg.setImageBitmap(MyDevice.getInstance().bitmap);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
thread.start();
break;
}
}
【问题讨论】:
-
发布您拥有的代码,以便我们更容易了解您拥有什么以及您的问题在哪里
-
保留创建线程的引用,并在需要时通过设置器将值传递给它。正如 codeMagic 所说,如果您发布代码,我们会更容易提供帮助。
-
使用帖子下方的“编辑”按钮在此处添加您的代码...更易于阅读
-
是的,但是您可以编辑评论中的代码并将其放入您的问题中,并对其进行格式化,以便我们更容易阅读。另外,如果您需要显示图片,您可以发布链接,有人可以添加它
-
是的。多谢,伙计。添加了代码。现在我真正想要的是当收到通过编辑文本的输入时,我想在下一个线程中使用它,为 getUserPic 方法输入。当代码运行时,似乎线程在两者之间运行,当我们为编辑文本输入输入时,使用提到的字符串的初始值。如何动态获取该值,以便线程使用用户键入它的时间的确切值!谢谢
标签: android multithreading android-edittext