2 つのアクティビティがあります。1 つはSQLiteからのデータを表示し、もう 1 つはそこにデータを追加します。タブで切り替えることができます。問題は、新しいアイテムを追加すると、リストを更新する方法がわからないことです。これは、別のアクティビティ クラスにあり、追加クラスでアクセスできないためです。これはどのように解決できますか?
ここに私の2つのクラスがあります:
リスト:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_1);
final ShoppingSQL shoppingSQL = new ShoppingSQL(this);
final List<ShoppingData> list = shoppingSQL.getAll();
final ArrayAdapter<ShoppingData> adapter = new ArrayAdapter<ShoppingData>(
this, android.R.layout.simple_list_item_1, list);
setListAdapter(adapter);
this.getListView().setLongClickable(true);
this.getListView().setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> parent, View v, int position, long id) {
shoppingSQL.delete((int)list.get(position).getId());
adapter.remove(list.get(position));
adapter.notifyDataSetChanged();
return true;
}
});
}
追加:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_2);
}
public void ButtonOnClick(View v) {
ShoppingSQL shoppingSQL = new ShoppingSQL(this);
ShoppingData data = new ShoppingData();
data.setName("test");
shoppingSQL.add(data);
Dialog d = new Dialog(this);
d.setTitle("Added!");
d.show();
}
また、ちょっとした補足質問があります。私の最初の (リスト) アクティビティで、「onLongClick」で変数にアクセスすると、Eclipseはすべての変数を final にしました - なぜそれを避けることができるのでしょうか? また、何を調べてコードを改善するか、または私が犯したその他の間違いについてのコメントも非常に良いでしょう。