在我的应用中有一个列表视图。当用户单击某个项目时,会出现alertdialog。用户从对话框中选择“删除”项,并删除列表视图中的项。问题是,listview的位置在我的代码中始终为null,因此remove命令的行为非常奇怪。在下面的代码中,当用户在“警报”对话框中单击“删除”时,文件的行将被读入数组,并且我想删除在列表视图中选择的项目。为此,我使用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
答案 0 :(得分:0)
position是一个int,它不能为null。如果在该行上获得空指针,则必须为assignArrT,该空指针为空。