私は同様の質問を見つけるためにかなりの努力をして失敗しました、それでこれが冗長な汚染であるならば私を許してください。
次のように、アクティビティに対応するxmlファイル「my_layout」にListViewとImageButtonが定義されています。
<ListView
android:id="@+id/listViewItems"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
></ListView>
と
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/btn_delete_dark"
android:id="@+id/buttonDelete"
android:layout_weight="1">
</ImageButton>
次に、次のように、アクティビティのonCreate()メソッドにプログラムでListViewを設定します。
パブリッククラスViewItemsActivityはActivityを拡張し、OnClickListener、OnItemClickListener{を実装します。
ImageButton buttonDelete;
ListView listViewItems;
DatabaseHandler dbHandler;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_layout);
buttonDeleteQuestion = (ImageButton) findViewById(R.id.buttonDelete);
listViewQuestions = (ListView) findViewById(R.id.listViewItems);
buttonDelete.setOnClickListener(this);
//get data from sql table containing items
dbHandler = new DatabaseHandler(this);
String [] items = dbHandler.getItems(); //get data to populate ListView
CustomAdapter adapter = new CustomAdapter(this,
android.R.layout.simple_list_item_1, items);
listViewItems.setAdapter(adapter);
listViewItems.setOnItemClickListener(this);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonDelete:
listViewItems.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
listViewItems.setItemChecked(0, true);
break;
//other cases are irrelevant
}
}
@Override
public void onItemClick(AdapterView<?> parent, View v, int pos, long id) {
// TODO Auto-generated method stub
//non relevant code
}
}
buttonDeleteをクリックした結果、ListViewの外観と機能を変更して、各行の右側にチェックマークを表示し、それらをクリックして確認できるようにすることを除いて、すべてが正常に機能します。
setChoiceMode(ListView.MULTIPLE_CHOICE)とsetItemChecked(i、true)がこの効果をもたらすことは私の理解でしたが、明らかに私は何かを見逃しました。
私はAndroidにまったく慣れていないので、些細なことで誰かの時間を無駄にしている可能性があります。申し訳ありません。
どうもありがとうございます。