我有一个列表元素的列表视图。当我点击一次时,会向我的服务器发出一个请求,并且在响应进入时显示吐司,然后在响应进入时显示另一个吐司。我希望在发生这种情况时禁用列表视图进行单击。什么是最好的方式来做到这一点?我尝试了一个简单的布尔值,但不知怎的,它总是在来自服务器的响应进入之前返回到其原始状态。还尝试禁用布局元素,并且不会去。建议?停用onclick listview元素后的监听器:android
//beginning of my FirstClass
static boolean wait = false;
//...some code
setListAdapter(new ArrayAdapter<String>(this, R.layout.main, arraylist));
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(!wait){
wait = true;
Toast.makeText(getApplicationContext(), "Processing...",Toast.LENGTH_SHORT).show();
String URL = "myurl";
new RequestTask(getApplicationContext()).execute(URL);
}
}
});
,然后在我的RequestTask类
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
Toast.makeText(this.context, result,Toast.LENGTH_SHORT).show();
FirstClass.wait = false; // turn it back to false?
}
是啊,这是有道理的,但我应该能够做到这一点没有引用我的布尔内的请求任务否?我添加了一些代码来展示我如何试图使它工作,但即使在响应从服务器进入之前,它仍然会恢复为false。我不明白这是怎么可能的,因为onPostExecute应该在最后发生(对于那个吐司来说,这是真的) – 2012-01-14 15:46:14