をリストビューには、カスタム列を追加し、私は次のように作成しました:は、動的にこれを参照することで
main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/addBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="addItems"
android:text="Add New Item" />
<ListView
android:id="@+id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false" />
</LinearLayout>
MainActivity.java
public class MainActivity extends Activity {
ListView list;
ArrayList<String> listItems = new ArrayList<String>();
ArrayAdapter<String> adapter;
int clickCounter = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list = (ListView) findViewById(R.id.list);
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, listItems);
list.setAdapter(adapter);
list.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String item = list.getItemAtPosition(position).toString();
Log.i("MainActivity", "Selected = " + item);
}
});
}
public void addItems(View v) {
listItems.add("Clicked : " + clickCounter++);
adapter.notifyDataSetChanged();
}
}
それは完璧に動作しています。しかし、要件ごとに、私の各リストビューの行は単なる文字列ではありません。代わりに、row.xmlに保存されたimageviewとtextviewsからなるビューのコレクションになります。
は今私のクエリは、次のとおりです。
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, listItems);
置き換えられますか?それはadapter = new ArrayAdapter<String>(this,R.layout.row, listItems);
でしょうか?どのように各行の画像ビューとテキストビューを参照しますか?それらのデータを設定して取得するにはどうすればよいですか?クリックイベントをどのように認識できますか?
Adapter
を使用する必要がありますか?または私はそれを離れて得ることができますか?
助けてください。
独自のカスタムアダプタを作成し、所望の行レイアウト – Houcine