#android #listview #android-alertdialog
#Android #listview #android-alertdialog
Вопрос:
в моем приложении есть listview. Когда пользователь нажимает на элемент, появляется alertdialog. Пользователь выбирает пункт «Удалить» из диалогового окна, и элемент из списка удаляется. Проблема в том, что позиция listview в моем коде всегда равна null, поэтому команда remove действует очень странно. В приведенном ниже коде, когда пользователь нажимает «Удалить» в диалоговом окне предупреждения, строки файла считываются в массив, и я хочу удалить элемент, который я выбрал в listview. Для этого я использую переменную position в 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
Комментарии:
1. Значение assignArrT равно нулю в этой строке, проверьте, почему.
Ответ №1:
position — это значение int, оно не может быть нулевым. Если вы получаете нулевой указатель на эту строку, это должно быть assignArrT, которое равно null.
Комментарии:
1. Нет, это не значение null. Однако ключевое слово не равно null, просто позиция.
2.
position
является int, который является примитивным типом, который по определению не может быть null. Что вы имеете в виду под «это не null»? С какой именно проблемой вы столкнулись? Пожалуйста, опубликуйте logcat с трассировкой стека.