1

アレイアダプタを使用して、リストビューにアレイリストを表示しています。アイテムの追加削除ができます。リストビューにアイテムがない場合、バインド例外から表示されているインデックスを削除することを選択したとします。必要なのは、「削除するアイテムがありません」のようなトーストを表示することです。エキスパートを明確にしてください!そして私のコードは以下の通りです:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    bAdd = (Button) findViewById(R.id.button1);
    bDel = (Button) findViewById(R.id.button2);
    et1 = (EditText) findViewById(R.id.editText1);
    et2 = (EditText) findViewById(R.id.EditText2);
    et3 = (EditText) findViewById(R.id.EditText3);
    lv = (ListView) findViewById(R.id.listView1);

    al = new ArrayList<String>();
    aa = new ArrayAdapter<String>(getApplicationContext(),
            android.R.layout.simple_list_item_1, al);
    lv.setAdapter(aa);

    bAdd.setOnClickListener(new android.view.View.OnClickListener() {

        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            String str1 = et1.getText().toString();
            if (str1.equals("")) {
                Toast.makeText(getApplicationContext(),
                        "Please Enter Item first!!", 0).show();
            } else {
                al.add(0, str1);
                aa.notifyDataSetChanged();
                et1.setText("");
            }

        }
    });
    bDel.setOnClickListener(new android.view.View.OnClickListener() {

        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            if (arg0 == null) {
                Toast.makeText(getApplicationContext(),
                        "Nothing to delete", 0).show();
            } else {
                al.remove(0);
                aa.notifyDataSetChanged();
            }
        }
    });
4

2 に答える 2

4

alリストを削除する前に、リストのサイズを確認してください。

        if (arg0 == null || al.isEmpty()) {
            Toast.makeText(getApplicationContext(),
                    "Nothing to delete", 0).show();
        } else {
            al.remove(0);
            aa.notifyDataSetChanged();
        }
于 2012-10-19T13:48:27.243 に答える
1

アレイに検証を設定します。以下を参照してください

bDel.setOnClickListener(new android.view.View.OnClickListener() {

    public void onClick(View arg0) {
        // TODO Auto-generated method stub

        if (arg0 == null) {
            Toast.makeText(getApplicationContext(),
                    "Nothing to delete", 0).show();
        } else {
            if(al.size == 0){
             Toast.makeText(getApplicationContext(),
                    "There is no item to delete", 0).show();
               return;
             }
            al.remove(0);
            aa.notifyDataSetChanged();
        }
    }
});
于 2012-10-19T13:50:32.740 に答える