ListView
私は自分のアプリで新規作成ListView
しましたActionBar
。ボタンの機能は、 に新しい項目を作成することListView
です。
私の質問は、ボタンが押されたときにString
新しいものを作成するにはどうすればよいですか?ListView
これは、単純な文字列行のみが必要な場合の例です。
ListView lv = (ListView) findViewById(R.id.mylist);
String[] values = new String[] { "Android", "Linux", "OSX",
"WebOS", "Windows7", "Ubuntu", "OS/2"
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.rowlayout, R.id.restaurantname, values);
lv.setAdapter(adapter);
adapter.add("another row");
adapter.notifyDataSetChanged()
ListView
Views
によって管理される複数を表示するウィジェットですAdapter
。具体的には、ListAdapter
.
リストビュー ウィジェットにアダプターを追加し、そのアダプターを使用して新しいアイテムをリストビューに追加する必要があります。
例えば; を追加して、ユーザーが ActionBar アイテムをクリックしたときにメソッドArrayAdapter
を呼び出すことができます。add
ArrayAdapters の使用に関するチュートリアルを次に示します。
最も基本的な形で。既存の Layout と TextView を使用するように ArrayAdapter に指示できます。したがって、文字列の追加は簡単です。
基本的には、次のようにする必要があります。
your_btn.setOnClickListener(new View.OnClickListener
{
public void onClick(View v)
{
your_custom_adapter.Add('Foo');
your_custom_adapter.notifyDataSetChanged();
}
});
アダプターでのメソッド Add の実装は明らかで、データ構造 (つまり、ArrayList) に新しい文字列を追加するだけです。
幸運を
ボタンのクリックでリストに新しいアイテムを追加することを意味する場合、それは確かに、使用したモデルがリストアダプターであることに限定されます。データベース、ファイル、または単なるランタイム List<>(); あなたのリストはアダプターに接続されています。メソッド「getViewAt」は、リストビューのすべての行を返します。
リストビューにデータベースモデルを使用した場合、ボタンクリックのアクティビティで挿入スクリプトを実行すると、データベースがデータを更新し、リストビューアダプターが DB からデータを取得して完了です。
または、アダプターで単純な List<> を使用しているだけの場合。あなたはあなたのクリックでlist.addを行い、アダプターは残りを行います。
Map をデータ モデリングとして使用した vogella でのサンプル: Listview サンプル