在我的應用程序中,我有一個用戶可以登錄的屏幕。登錄細節被髮送到網絡,一些數據被下載到微調器中。我爲應用程序實現了一個進度對話框,以便應用程序在訪問網絡和下載時不會鎖定應用程序。進度對話框似乎工作正常,但任務完成後似乎並沒有更新我的微調 - 我實際上必須單擊微調以顯示已下載的數據。 notifyDataSetChanged()方法似乎不起作用,如果我沒有任何線程,通常會默認顯示第一個項目。這是一些代碼。android線程 - 鎖定UI?
這將啓動progressdialog
pd = ProgressDialog.show(this, "Logging in...", "Please wait", true, false); Thread thread = new
Thread(this); thread.start();
run方法的代碼 - 在這裏微調數據集被改變
public void run() {
myMethodThatDoesStuff();
handler.sendEmptyMessage(0);
}
和處理
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
pd.dismiss();
}
};
最後,在該位myMethodThatDoStStuff改變微調數據集
aa=new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item);
//ADDING SOME DATA HERE
//DATA ADDED
spin=(Spinner)findViewById(R.id.spinner);
spin.setOnItemSelectedListener(this);
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spin.setAdapter(aa);
aa.notifyDataSetChanged();
注:不穿這工作絕對沒問題
當我使用這個確切的同樣的事情正在發生的事情裏面。 – 2011-04-02 16:46:04