java - ListView 将刷新已存在的项目,并且不会添加新项目

标签 java android class listview methods

我正在尝试制作一个待办事项列表应用程序,并且我有一个 EditText 字段,可以在其中输入任务。当我按下“添加” float 操作按钮时,第一个任务完美地进入 ListView ,但是当我尝试添加第二个任务时,它会将第一个任务更改为第二个任务,依此类推。所以问题是我一次只能执行一个任务,但我想要的是一个任务列表。

这是我的 onCreate 方法,我在其中声明 float 操作按钮并为其设置 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();

}

最佳答案

初始化 taskListmAdapter 的部分只需在 onCreate 方法中完成一次。所以移动这个 block

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方法中。您当前的代码正在重置每个点击事件的适配器和任务列表。

关于java - ListView 将刷新已存在的项目,并且不会添加新项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52357585/

相关文章:

java - 无法解析 CalEventServiceUtil

java - 从 WCF 服务执行 JAR

c++ - C++ 中的 this->data 和 (*this).data 有什么区别

javascript - 超出最大调用堆栈大小 - 无限循环

java - 类变量初始值设定项、类的静态初始值设定项和字段初始值设定项之间的区别

java - 杰特、poi、jexl。无法转换我的文档

java - 如何修复错误 "Can' 无法播放此视频”?(m3u8) 文件

Android Fused LocationSettingsRequest 从 startResolutionForResult 中删除 "never"选项

Android 创建具有堆叠 View 的垂直轮播

python - 尝试调用类方法时出现 NameError 问题