単一選択<超簡単> |
単一選択の例です。 ラジオボタンの動作をします。 MainActivity.java package com.example.lvbasic; import static android.widget.AbsListView.CHOICE_MODE_SINGLE; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { ArrayAdapter<String> adapter; ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.activity_main); // listView = findViewById(R.id.list);; final ArrayList<String> data = new ArrayList<>(); data.add("北海道"); data.add("青森県"); data.add("岩手県"); data.add("宮城県"); int id = android.R.layout.simple_list_item_single_choice; adapter = new ArrayAdapter<>( this, id, data); listView = new ListView(this);; listView.setChoiceMode(CHOICE_MODE_SINGLE); setContentView(listView); listView.setAdapter(adapter); listView.setChoiceMode(CHOICE_MODE_SINGLE); listView.setOnItemClickListener( new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView<?> av, View view, int position, long id) { CharSequence msg = ((TextView) view).getText(); Log.d("click",msg.toString()); } } ); } } lv.xmlの内容です。 <?xml version="1.0" encoding="utf-8"?> <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#004400" android:paddingStart="20dp" android:paddingEnd="10dp" android:textSize="24sp" android:textColor="#aaaadd" > </TextView> dataはArrayListを使って定義します。 レアウトは、 android.R.layout.simple_list_item_single_choice を使います。 また、listViewをnew で生成しいます。 listViewをに単一選択の属性を付加するために、 listView.setChoiceMode(CHOICE_MODE_SINGLE); で選択モードを指定します。 普通にactivity_main.xmlを使って実施するには、 activity_main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:choiceMode="singleChoice" /> </LinearLayout> android:choiceMode="singleChoice" で選択モードを指定します。 選択表示が右側で違和感を感じる人もいるかと思います。(自分はそうです) |