【发布时间】:2012-12-14 21:13:50
【问题描述】:
我从 Google App Engine 以字符串形式获取数据,因此我必须在线程中进行。接下来我想在 ListView 中显示它,我正在尝试执行类似以下代码的操作:
public void ShowContacts (){
new Thread(new Runnable() {
@Override
public void run() {
try
{
final RestClient client = new RestClient("http://xxx.appspot.com/client");
client.AddParam("userName", "user");
client.Execute(RequestMethod.GET);
_listView.post(new Runnable() {
@Override
public void run() {
String s = client.getResponse();
String[] items = s.split(";");
//adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1, items);
//_listView.setAdapter(adapter);
}
});
}
catch (Exception e)
{
}
}
}).start();
}
此代码不适用于我。有没有办法从线程中获取一些值并将其设置为全局变量或直接在线程中构造一个 ArrayAdapter 或其他什么?
【问题讨论】:
-
This code is not working for me.不工作怎么办?如果您能更具体地了解您所面临的问题,将会有所帮助。 -
当我尝试构建适配器时出现此错误:“构造函数 ArrayAdapter
(new Runnable(){}, int, int, String[]) 未定义” -
在您的适配器构造函数 args 中将
this更改为NameOfYourActivity.this但用您的 Activity 类的真实名称填充它。此外,我建议您在深入研究 Android 之前花点时间复习一下 Java =)
标签: android multithreading google-app-engine listview runnable