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

Android Studio中ListView仅显示笔记标题、点击查看全文实现方法

问题说明

当前简易笔记应用使用ListView实现笔记列表时,长文本笔记会在列表项中展示全部内容,需要调整为:列表项仅展示笔记标题/摘要,点击进入编辑页才展示完整内容。


解决方案

问题根源是默认ArrayAdapter会直接绑定全量笔记文本做渲染,不需要修改现有笔记存储、编辑、持久化的核心逻辑,只需要自定义列表项的文本渲染规则即可,完整内容始终保留在内存和本地存储中,编辑页读取不受影响。

具体修改步骤

1. 替换MainActivity中的默认ArrayAdapter实现

找到MainActivity.java中原先初始化适配器的代码:

arrayAdapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,notes) ;

替换为自定义适配器实现,重写列表项渲染逻辑,仅展示截取后的摘要:

arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, notes){
    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        View itemView = super.getView(position, convertView, parent);
        TextView itemText = itemView.findViewById(android.R.id.text1);
        String fullNote = notes.get(position);
        String showTitle;
        // 空笔记统一显示无标题
        if (fullNote.trim().isEmpty()) {
            showTitle = "无标题笔记";
        } 
        // 内容超过20字时截取前20字加省略号
        else if (fullNote.length() > 20) {
            showTitle = fullNote.substring(0, 20) + "...";
        } 
        // 短内容直接完整展示
        else {
            showTitle = fullNote;
        }
        itemText.setText(showTitle);
        // 强制列表项单行显示,末尾超出自动省略
        itemText.setMaxLines(1);
        itemText.setEllipsize(TextUtils.TruncateAt.END);
        return itemView;
    }
};

在MainActivity.java顶部的导入区域补充缺少的类引用:

import android.text.TextUtils;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.Nullable;

2. 修复原有代码的冗余bug

原代码中无论是否存在历史笔记,都会强制执行notes.add("Note 1");,会导致每次启动APP都新增一条重复的测试笔记,直接删除这行代码即可,仅在首次启动无历史数据时保留示例笔记:

if(set==null) {
    notes.add("Example note");
}
else{
    notes=new ArrayList(set);
}
// 删掉下面这行冗余代码
// notes.add("Note 1");

3.(可选)修正文件名拼写错误

当前编辑页布局文件名存在拼写错误:acitivity_node-editor.xml,建议修正为和Activity对应的标准命名activity_note_editor.xml,同时同步修改NoteEditorActivity.java中setContentView引用的布局名,避免后续资源引用报错。


实现效果
  • 列表页所有笔记项仅展示单行摘要,长文本自动截断加省略号,不会再出现长内容撑满列表的问题
  • 点击列表项进入编辑页时,仍然可以读取、编辑完整的笔记内容,原有新增、删除、自动保存逻辑完全不受影响
  • 本地SharedPreferences存储的始终是完整笔记内容,不会丢失数据

内容的提问来源于stack exchange,提问作者Dafny dsa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 10:06:21