我正在 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
提交
取消