私のメインページのために、refesh関数を作成しようとしています。私は多くのサイトを検索しましたが、(私のために)アクセシブルな慣用句を見つけることができないようです。私はsQLLiteデータベースから情報をロードしています。私が私の追加活動を使用し、私が追加した項目が現れないMainScreen活動に戻るとき。活動が再開されると、このデータをどのように更新することができますか?Android:リフレッシュ時にArrayAdapterをリフレッシュ
事前にお問い合わせください。私は
public ListView whiskeylist;
String[] DataArryWhiskey;
ListAdapter Adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Start db view of whiskey
DBConfig info = new DBConfig(this);
info.open();
DataArryWhiskey = info.getDataInArray();
info.close();
whiskeylist = (ListView) findViewById(R.id.listofWhiskey);
Adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, DataArryWhiskey);
whiskeylist.setAdapter(Adapter);
// End db view of whiskey
}// end onCreate
@Override
public void onResume()
{
super.onResume();
DBConfig info = new DBConfig(this);
info.open();
DataArryWhiskey = info.getDataInArray();
info.close();
Adapter.notifyDataSetChanged(); // refresh adapter
}
にコードを変更アディルの助言に
public ListView whiskeylist;
String[] DataArryWhiskey;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Start db view of whiskey
DBConfig info = new DBConfig(this);
info.open();
DataArryWhiskey = info.getDataInArray();
info.close();
whiskeylist = (ListView) findViewById(R.id.listofWhiskey);
whiskeylist.setOnItemClickListener(this);
whiskeylist.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, DataArryWhiskey));
}// end onCreate
しかし、私は<「notifyDataSetChangedがタイプListAdapterには未定義である方法を」notifyDataSetChanged上のエラーを取得します - ListAdapterを変更することで、それを修正ArrayAdapterには、アプリはまだクラッシュします。
をどこで呼びますか? – user1114720
1つの質問、追加アクティビティをどのように開始しますか? startActivityForResultを使用してActivtyを追加する場合は、2つのステップがあります。 1)onActivityResultメソッドからshowData()を呼び出す 2)またはこのメソッドをonResume()から呼び出します。 – AAnkit
別のアダプタを設定するのは悪い方法です。古いアダプタをリフレッシュする必要があります。 –