Java 删除空arraylist中的元素会使我的应用程序崩溃
我有一个用于微调器的arraylist,1个add按钮用于将元素添加到列表中,1个delete按钮用于删除列表中的元素。我添加到列表中的元素将显示在微调器中。最初,arraylist是空的,里面没有任何内容。当它为空并且我按下delete按钮时,意味着我试图删除arraylist中没有元素的元素,这会使我的应用程序崩溃 因此,我想在列表为空时添加一个toast来替换delete函数。当列表不为空时,删除功能将返回 有什么解决办法吗Java 删除空arraylist中的元素会使我的应用程序崩溃,java,android,arraylist,android-spinner,Java,Android,Arraylist,Android Spinner,我有一个用于微调器的arraylist,1个add按钮用于将元素添加到列表中,1个delete按钮用于删除列表中的元素。我添加到列表中的元素将显示在微调器中。最初,arraylist是空的,里面没有任何内容。当它为空并且我按下delete按钮时,意味着我试图删除arraylist中没有元素的元素,这会使我的应用程序崩溃 因此,我想在列表为空时添加一个toast来替换delete函数。当列表不为空时,删除功能将返回 有什么解决办法吗 spinner = (Spinner) findView
spinner = (Spinner) findViewById(R.id.spinner1);
adp = new ArrayAdapter<String>(CarSelection.this,android.R.layout.simple_spinner_item, list);
adp.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adp);
spinner.setOnItemSelectedListener(
new OnItemSelectedListener() {
public void onItemSelected(
AdapterView<?> parent, View view, final int position, long id) {
Button delete = (Button) findViewById(R.id.delete);
View.OnClickListener del = new View.OnClickListener() {
@Override
public void onClick(View view) {
list.remove(position);
}
spinner=(spinner)findviewbyd(R.id.spinner1);
adp=new ArrayAdapter(CarSelection.this,android.R.layout.simple\u微调器\u项,列表);
adp.setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器.设置适配器(adp);
spinner.setOnItemSelectedListener(
新建MSelectedListener(){
公营部门选举(
AdapterView父级、视图、最终整数位置、长id){
按钮删除=(按钮)findViewById(R.id.delete);
View.OnClickListener del=new View.OnClickListener(){
@凌驾
公共void onClick(视图){
列表。删除(位置);
}
您应该测试“空”情况。假设一个名为“elements”的数组:
最好是在数组中没有元素时禁用delete按钮。比方说,您的ArrayList称为
mList
,您的delete函数应该类似于-
public void deleteElement(int pos) {
if(mList.isEmpty()) {
//Toast
Toast.makeText(yourContext, "Ooi, list is empty", Toast.LENGTH_SHORT).show();
} else {
mList.remove(pos);
}
}
更新
@Override
public void onClick(View view) {
if(list.isEmpty()) {
//Your Toast
Toast.makeText(yourContext, "Ooi, list is empty", Toast.LENGTH_SHORT).show();
} else {
list.remove(position);
}
}
首先,对于更好的用户体验,如果列表为空,则不应显示微调器。您可以向用户显示toast消息,说明您无法执行此操作 无论如何,这是你可以用来做检查的代码片段。你可以把这个检查放在你想要的任何地方
if(!list.isEmpty())
//list is empty
else
list is not empty
请附上你的代码。你在找什么,
isEmpty()
!@lkmhr你说的“isEmpty()”是什么意思?@vincentsiau我发布了awnswer。你是在给notifyDatasetChanged()打电话吗
if(!list.isEmpty())
//list is empty
else
list is not empty