1
データを読み込んだ後にリストビューは表示されませんが、画面表示が消えてリストが表示されます。 happening.iアプリをテストするためにxiamoiマイルフォンを使用していますいただきました!他の活動コードは、ちょうどあなたがサーバーからデータをフェッチした後((ArrayAdapter<Model>)getListAdapter()).notifyDataSetChanged()
を呼び出す必要があり、私はデータを読み込んだ後にリストは表示されませんが、ディスプレイが消灯してリストが表示されたとき
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.widget.ArrayAdapter;
public class FriendList extends ListActivity {
String email;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle bundle = getIntent().getExtras();
email = bundle.getString("email");
setContentView(R.layout.contacts_list);
final List<Model> list = new ArrayList<Model>();
/** This block is for getting the image url to download from the server **/
final GetDataFromDB getvalues = new GetDataFromDB();
final ProgressDialog dialog = ProgressDialog.show(FriendList.this,
"", "Gettting values from DB", true);
new Thread (new Runnable() {
public void run() {
String response = getvalues.getImageURLAndDesciptionFromDB(email);
System.out.println("Response : " + response);
if (!response.equalsIgnoreCase("")) {
if (!response.equalsIgnoreCase("error")) {
dismissDialog(dialog);
// Got the response, now split it to get the image Urls and description
String all[] = response.split("\\|::endline::\\|");
for(int k = 0; k < all.length; k++){
String urls_and_desc[] = all[k].split("\\|::break::\\|"); // urls_and_desc[0] contains image url and [1] -> description
System.out.println("image url : " + urls_and_desc[2]);
list.add(get(urls_and_desc[1], "https://xxxx.xx/" + urls_and_desc[2]));
}
}
} else {
dismissDialog(dialog);
}
}
}).start();
/*************************** GOT data from Server ********************************************/
ArrayAdapter<Model> adapter = new MyCustomArrayAdapter(this, list);
adapter.notifyDataSetChanged();
setListAdapter(adapter);
}
public void dismissDialog(final ProgressDialog dialog){
runOnUiThread(new Runnable() {
public void run() {
dialog.dismiss();
}
});
}
private Model get(String s, String url) {
return new Model(s, url);
}
}
が、私は "notifyDataSetChangedメソッドを解決できません"のようなエラーが発生しました –
私は自分の答えを更新する。 'getListAdapter()'によって返されたアダプタを 'ArrayAdapter'にキャストする必要があります。 – shhp
「ビュー階層を作成した元のスレッドのみがそのビューに触れることができる」のようなエラーが表示されます。 –