我写了一个简单的程序,它将显示一个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