1

レコードをsqllite dbに挿入した後、別のアクティビティからリストビューアダプターを呼び出したいです。

adapter.notifyDataSetChanged() メソッドを呼び出せません。それを行う最善の方法は何ですか。

public void onClick(View v) {
    TextView item_name;
    item_name=(TextView) findViewById(R.id.eItemName);         
    Log.d("Insert: ", "Inserting ..");
    db.add_item(new Item(item_name.getText().toString()), getApplicationContext());

    // I want to call the method HERE!!!! 

    finish();   
}
4

2 に答える 2

1

より良いオプションは、ListView があるアクティビティListView内に新しいデータを再ロードすることです。別のアクティビティでリストが表示されないため、別のクラスonResume()から呼び出す必要はありません。notifyDataSetChanged()

@Override
protected void onResume() {
    super.onResume();

    //fill your Collection with new data
    // setAdapter or notify your adapter
}
于 2012-07-21T11:42:41.893 に答える
1

ただ

finish()現在のアクティビティの後、前のアクティビティadapter.notifyDataSetChanged()から呼び出しonActivityResult()ます(この前のアクティビティでリストビューを想定しているため)。

また、使用して前のアクティビティから現在のアクティビティを開始しますstartActivityForResult();

または、このアクティビティに List Adapter の参照がある場合は、その参照呼び出しを使用しますadapter.notifyDataSetChanged()。(しかし、それは良い習慣ではないと思います)

于 2012-07-21T11:34:15.643 に答える