我已经做出了相当大的努力来找到一个类似的问题并且失败了,所以如果这是多余的污染,请原谅我。
我在与我的 Activity 对应的 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>
然后,我在我的 Activity 的 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
}
}
一切正常,除了我希望 ListView 在外观和功能上发生变化,因为单击 buttonDelete,以便它在每行的右侧显示复选标记,可以通过单击它们进行检查。
我的理解是 setChoiceMode(ListView.MULTIPLE_CHOICE) 和 setItemChecked(i,true) 会产生这种效果,但显然我错过了一些东西,因为它没有。
我对android很陌生,所以我可能在琐事上浪费了别人的时间,对此我深表歉意。
非常感谢。