Java 删除空arraylist中的元素会使我的应用程序崩溃

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

我有一个用于微调器的arraylist,1个add按钮用于将元素添加到列表中,1个delete按钮用于删除列表中的元素。我添加到列表中的元素将显示在微调器中。最初,arraylist是空的,里面没有任何内容。当它为空并且我按下delete按钮时,意味着我试图删除arraylist中没有元素的元素,这会使我的应用程序崩溃

因此,我想在列表为空时添加一个toast来替换delete函数。当列表不为空时,删除功能将返回

有什么解决办法吗

    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