You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android简易笔记项目中实现动态ListView添加标题功能

实现Android笔记项目的动态ListView功能

我来帮你搞定这个需求,咱们一步步来实现点击保存按钮把标题添加到ListView的功能:

1. 准备布局文件(activity_note.xml)

首先确保你的布局里包含标题输入框、保存按钮和用于展示标题的ListView:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="16dp">

    <!-- 笔记标题输入框 -->
    <EditText
        android:id="@+id/et_note_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="输入笔记标题"/>

    <!-- 保存按钮 -->
    <Button
        android:id="@+id/btn_save_note"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="保存笔记"
        android:layout_marginTop="16dp"/>

    <!-- 展示已保存标题的ListView -->
    <ListView
        android:id="@+id/lv_note_titles"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="16dp"/>

</LinearLayout>

2. 在NoteActivity中实现核心逻辑(Java版本)

接下来在Activity里初始化控件、数据源和适配器,然后处理保存按钮的点击事件:

import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;

public class NoteActivity extends AppCompatActivity {

    private EditText etNoteTitle;
    private Button btnSaveNote;
    private ListView lvNoteTitles;
    private ArrayList<String> noteTitlesList;
    private ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_note);

        // 初始化页面控件
        etNoteTitle = findViewById(R.id.et_note_title);
        btnSaveNote = findViewById(R.id.btn_save_note);
        lvNoteTitles = findViewById(R.id.lv_note_titles);

        // 初始化标题数据源和ListView适配器
        noteTitlesList = new ArrayList<>();
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, noteTitlesList);
        lvNoteTitles.setAdapter(adapter);

        // 绑定保存按钮的点击事件
        btnSaveNote.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String title = etNoteTitle.getText().toString().trim();
                if (!title.isEmpty()) {
                    // 将标题添加到数据源
                    noteTitlesList.add(title);
                    // 通知适配器数据更新,ListView会自动刷新显示新标题
                    adapter.notifyDataSetChanged();
                    // 清空输入框,提升用户体验
                    etNoteTitle.setText("");
                }
            }
        });
    }
}

3. Kotlin版本实现(可选)

如果用Kotlin开发,代码会更简洁直观:

import android.os.Bundle
import android.widget.ArrayAdapter
import android.widget.Button
import android.widget.EditText
import android.widget.ListView
import androidx.appcompat.app.AppCompatActivity

class NoteActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_note)

        val etNoteTitle = findViewById<EditText>(R.id.et_note_title)
        val btnSaveNote = findViewById<Button>(R.id.btn_save_note)
        val lvNoteTitles = findViewById<ListView>(R.id.lv_note_titles)

        val noteTitlesList = mutableListOf<String>()
        val adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, noteTitlesList)
        lvNoteTitles.adapter = adapter

        btnSaveNote.setOnClickListener {
            val title = etNoteTitle.text.toString().trim()
            if (title.isNotEmpty()) {
                noteTitlesList.add(title)
                adapter.notifyDataSetChanged()
                etNoteTitle.setText("")
            }
        }
    }
}

4. 补充:如果ListView在单独的主页面(比如MainActivity)

要是你的ListView是在主页面,NoteActivity是独立的编辑页面,那需要通过Intent把标题数据返回给主页面,再更新ListView:

NoteActivity中修改保存按钮逻辑,返回数据:

btnSaveNote.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        String title = etNoteTitle.getText().toString().trim();
        if (!title.isEmpty()) {
            // 创建Intent携带标题数据
            Intent intent = new Intent();
            intent.putExtra("NOTE_TITLE", title);
            setResult(RESULT_OK, intent);
            finish(); // 关闭编辑页面返回主页面
        }
    }
});

MainActivity中接收数据并更新ListView:

// 启动NoteActivity时使用startActivityForResult
btnAddNote.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, NoteActivity.class);
        startActivityForResult(intent, 100); // 100是自定义请求码,只要唯一即可
    }
});

// 重写方法接收返回的数据
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 100 && resultCode == RESULT_OK && data != null) {
        String title = data.getStringExtra("NOTE_TITLE");
        if (title != null) {
            noteTitlesList.add(title);
            adapter.notifyDataSetChanged();
        }
    }
}

这样就能完美实现点击保存按钮后,把标题添加到目标ListView里啦,是不是很简单?

内容的提问来源于stack exchange,提问作者Amir.Mohamad Amiri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:45:34