読者です 読者をやめる 読者になる 読者になる

【Android】ListView(基本編)

Android

▼/layout/activity_main.xml  ※リストレイアウト

<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="wrap_content">
  <ListView
    android:id="@+id/listview01"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:dividerHeight="1dp"/>
</LinearLayout>

android:dividerHeight リストの区切り線の高さ

 

▼textview.xml リストの1つの項目のレイアウト

<?xml version="1.0" encoding="utf-8"?>
<TextView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:textSize ="16dp"
  android:textStyle ="bold"
  android:textColor="#000000"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:paddingLeft="20dp"
  android:paddingTop="10dp"
  android:paddingBottom="10dp"/>

 

▼MainActivity.java

ArrayAdapter<String> adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  ~
  adapter = new ArrayAdapter<String>(this, R.layout.textview, list);※後述
  ListView lv = (ListView)findViewById(R.id.listview01);
  lv.setAdapter(adapter);//アダプタの設定
  lv.setOnItemClickListener(this);//クリックリスナーの設定
}

public void onItemClick(AdapterView<?> parent, View view, int position, long id){
  switch (parent.getId()) {
    case R.id.mainlistview:
    ListView lv = (ListView)parent;
    String name = (String)lv.getItemAtPosition(position);

    //リストの項目にセットしているものが取得できます

    break;
  default:
    break;
  }
}

@Override
protected void onDestroy() {
  super.onDestroy();
  if (adapter != null) {
    adapter.clear();//クリアボタンでクリアしたりも
  }
}

 

※list の中身のセットについて--------------------------------------------------------------

①String list = new String {"佐藤", "山田"};

 

ArrayList<String> list = new ArrayList<String>();
 list.add("佐藤");
 list.add("山田");

 

③values/strings.xml
 <resources>
   <string-array name="names">
     <item>佐藤</item>
     <item>山田</item>
   </string-array>
 </resources>


String[] list = getResources().getStringArray(R.array.names);

------------------------------------------------------------------------------------------------------------

アダプターは、ArrayAdapter<String>を使用していますが、

Stringではなく、独自Adapterを定義することも可能です。

そのへんについては別途ご説明します。

 

以上です。