Позиция элемента списка Android

в моем приложении есть список. Когда пользователь щелкает элемент, появляется диалоговое окно предупреждения. Пользователь выбирает элемент «Удалить» в диалоговом окне, и элемент из списка удаляется. Проблема в том, что в моем коде позиция списка всегда нулевая, поэтому команда удаления ведет себя очень странно. В приведенном ниже коде, когда пользователь нажимает «Удалить» в диалоговом окне «Предупреждение», строки файла считываются в массив, и я хочу удалить элемент, выбранный в списке. Для этого я использую переменную позиции onitemclick().

lv1.setOnItemClickListener(new OnItemClickListener() 
{
    @Override
    public void onItemClick(AdapterView<?> a, View v, final int position, long id) {

     Object o = lv1.getItemAtPosition(position);
     keyword = o.toString();
     AlertDialog.Builder builder2 = new AlertDialog.Builder(Bind.this);
         builder2.setTitle("Select");
        final CharSequence[] selection2 = select.toArray(new CharSequence[valasztas.size()]);
         builder2.setItems(selection2, new DialogInterface.OnClickListener()
         {
            public void onClick(DialogInterface dialog, int item2)
            {       
                if (selection2[item2].equals("Delete"))
                { 
                    try { 
                         File rootdir = Environment.getExternalStorageDirectory();
                         File yourFile = new File(rootdir, "tomato50.txt");
                         FileReader filereader = new FileReader(yourFile);
                            BufferedReader br = new BufferedReader(filereader);
                            String line; 
                            while((line = br.readLine()) != null) 
                        {
                              assignArrT.add(line);

                        } 
                               br.close();
                    }
                      catch (IOException e) 
                      { 
                          e.printStackTrace(); 
                      }
                assignArrT.remove(position);  //this is null

person erdomester    schedule 06.06.2011    source источник
comment
assignArrT имеет значение null в этой строке, проверьте, почему.   -  person Egor    schedule 06.06.2011


Ответы (1)


position является целым числом, оно не может быть нулевым. Если вы получаете нулевой указатель в этой строке, это должен быть assignArrT, который имеет значение null.

person Cheryl Simon    schedule 06.06.2011
comment
Нет, это не ноль. Однако ключевое слово не пустое, а только позиция. - person erdomester; 06.06.2011
comment
position — это тип int, примитивный тип, который по определению не может быть нулевым. Что вы имеете в виду, что это не ноль? Какая именно проблема у вас возникла? Пожалуйста, опубликуйте logcat с трассировкой стека. - person Cheryl Simon; 06.06.2011