我寫了一個簡單的程序,它將顯示一個ArrayList,用戶可以選擇一個項目並用按鈕刪除它。檢查是否選擇了setOnItemClickListener
如果用戶沒有選擇一個項目,而是繼續點擊刪除按鈕,他們將刪除ArrayList上的第一個項目。我如何防止這種情況發生?當選擇了一個項目的刪除按鈕應該只運行,所以我需要找到一個方法來檢查該
int positionID;
ListView listview;
ArrayList<String> valuesArray = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listview = (ListView) findViewById(R.id.listview);
valuesArray.add("a");
valuesArray.add("b");
valuesArray.add("c");
valuesArray.add("d");
valuesArray.add("e");
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_list_item_1, valuesArray);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
positionID = (int) id;
}
});
}
public void onClickDelete(View v) {
//need to check if an item is selected. if so, run code below
valuesArray.remove(positionID);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, valuesArray);
listview.setAdapter(adapter);
}
爲什麼您不嘗試設置已刪除按鈕的可見性,即如果選擇了某個項目,則將刪除按鈕設置爲可見,這將改善用戶體驗。 – Sree