簡體   English   中英

ListView將刷新現有項,並且不會添加新項

[英]ListView will refresh already existing item and won't add a new one

我正在嘗試制作“待辦事項列表”應用,並且在輸入任務的地方有一個EditText字段。 當我按下“添加”浮動操作按鈕時,第一個任務完美地進入了列表視圖,但是當我嘗試添加第二個任務時,它將第一個任務更改為第二個任務,依此類推。 因此,問題是我一次只能執行某項任務,但我想擁有的是任務列表。

這是我的onCreate方法,在其中聲明浮動操作按鈕並為其設置OnClickListener:

DBHelper dbHelper;
ArrayAdapter<String> mAdapter;
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_menu);
    // Finds you button from the xml layout file
    FloatingActionButton faButton = (FloatingActionButton) findViewById(R.id.fab);

    // Waits for you to click the button
    faButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            // Starts the function below
            addNotification();
            listView.setAdapter(mAdapter);
            addToDoElement(null);
        }
    });
    listView = (ListView)findViewById(R.id.lstTask);
}

這是將任務從EditText添加到ListView的方法

ArrayList<String> taskList;
public void addToDoElement(View view) {
    listView = (ListView) findViewById(R.id.lstTask);
    taskList = new ArrayList<>();
    mAdapter = new ArrayAdapter<String>(this, R.layout.row, R.id.task_title, taskList);

    listView.setAdapter(mAdapter);


    //Gets TASK text from EditText
    EditText mEdit   = (EditText)findViewById(R.id.titlu);
    Log.v("EditText", mEdit.getText().toString());

    taskList.add(mEdit.getText().toString());
    mEdit.setText("");
    mAdapter.notifyDataSetChanged();

}

onCreate方法中,初始化taskListmAdapter只需完成一次。 所以移動這個方塊

listView = (ListView) findViewById(R.id.lstTask);
taskList = new ArrayList<>();
mAdapter = new ArrayAdapter<String>(this, R.layout.row, R.id.task_title, taskList);
listView.setAdapter(mAdapter);

在您的onCreate方法中。 您當前的代碼正在重置每個click事件上的適配器和任務列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM