我正在 Android Studios 中创建一个简单的任务列表应用程序。我有以下两项活动(删除了进口和包装规格):MainActivity.javapublic class MainActivity extends AppCompatActivity implements View.OnClickListener, AdapterView.OnItemClickListener { EditText taskAdd; Button add; public ListView tasks; public Integer pos = 0; public ArrayList<String> taskArray; public ArrayAdapter<String> adapter; @Override protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); taskAdd = findViewById(R.id.taskAdd); add = findViewById(R.id.add); tasks = findViewById(R.id.tasks); taskArray = FileHelper.readData(this); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, taskArray); tasks.setAdapter(adapter); add.setOnClickListener(this); tasks.setOnItemClickListener(this); } @Override public void onClick(View v) { switch(v.getId()){ case R.id.add: String entered = taskAdd.getText().toString(); if (entered != "" || entered != null || entered != "null") { adapter.add(entered); taskAdd.setText(""); FileHelper.writeData(taskArray, this); Toast.makeText(this, "Task Added!", Toast.LENGTH_SHORT).show(); } break; } } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { pos = position; Intent intent = new Intent(MainActivity.this, Pop.class); startActivity(intent); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); setIntent(intent); processExtraData(); }在我单击 Pop.java 中的 deleteButton 后,MainActivity.java 中的 processExtraData 应该会运行。Toast确实出现了,但是ListView中选中的对象并没有被删除。也不会抛出任何错误。此外,使用 Log.d 检查 taskArray 的大小确认这不仅仅是一个图形问题。为什么会这样,我应该如何解决它?感谢您提前回复。
1 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
问题是您使用的是对象引用而不是原始数据类型,因此当您调用 taskArray.remove(pos) 时,它正在寻找 pos 对象而不是其表示的整数值。
代替:
taskArray.remove(pos);
尝试:
taskArray.remove(pos.intValue());
添加回答
举报
0/150
提交
取消