我有一個列表元素的列表視圖。當我點擊一次時,會向我的服務器發出一個請求,並且在響應進入時顯示吐司,然後在響應進入時顯示另一個吐司。我希望在發生這種情況時禁用列表視圖進行單擊。什麼是最好的方式來做到這一點?我嘗試了一個簡單的布爾值,但不知怎的,它總是在來自服務器的響應進入之前返回到其原始狀態。還嘗試禁用佈局元素,並且不會去。建議?停用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