删除空arraylist中的元素会导致我的应用崩溃

时间:2014-08-11 16:51:45

标签: java android arraylist android-spinner

我的微调器有一个arraylist,1个添加按钮将元素添加到列表中,1个删除按钮删除列表中的元素。我添加到列表中的元素将显示在微调器中。最初,arraylist是空的,里面什么都没有。如果它是空的并且我按下删除按钮,意味着我试图删除没有元素的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);
                                }

3 个答案:

答案 0 :(得分:1)

假设您的ArrayList被称为mList,您的删除功能应该类似于 -

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);
    }
}

答案 1 :(得分:1)

首先,恕我直言以获得更好的用户体验,如果列表为空,则不应显示微调器。您可以向用户显示干杯消息,说明您无法执行此操作。

无论如何,这里是您可以用来进行检查的代码段。您可以将此支票放在您想要的任何地方

 if(!list.isEmpty())
      //list is empty
    else
     list is not empty

答案 2 :(得分:0)

你应该测试&#34;空&#34;案件。假设一个名为&#34;的元素&#34;:

if elements.isEmpty() {
  deleteButton.disable();
}

最好是在数组中没有元素时禁用删除按钮。