listView.setAdapter(new ArrayAdapter<String>(getActivity(), R.layout.common_dialog_single_choice_item, menus));
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
<?xml version="1.0" encoding="utf-8"?>
<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/text1"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeightSmall"
android:checkMark="@drawable/common_dialog_singlechoice_checkbox"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:paddingRight="10dp" />
獲取選擇結果 listView.getCheckedItemPositions(); 返回的是一個SparseArray 可以從中獲取到每個item的選中狀態
例子:
public class MainActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final ListView listView = (ListView) findViewById(R.id.lv);
String[] strs = new String[] { "TCL", "長虹", "長虹", "長虹" };
listView.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_single_choice, strs));
listView.setTag(-1);
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
listView.setTag(position);
}
});
findViewById(R.id.button1).setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, listView.getTag() + "", 10).show();
}
});
}
}