我已經做了一個體面的努力來找到類似的問題,並失敗了,所以請原諒我,如果這是多餘的污染。以編程方式更改列表視圖,使其可檢查
我有一個ListView和在XML文件中定義的 「my_layout」 相當於我的活動如下的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>
我再編程填充ListView在OnCreate ()方法如下:
public class ViewItemsActivity extends 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(我,真)會有這種效果,但顯然我錯過了一些東西,因爲它沒有。
我對android非常陌生,所以有可能我浪費了一些時間與瑣事,爲此我表示歉意。
非常感謝。