andriod listview
activity_main.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | < LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity" android:orientation="vertical"> < TextView android:text="请点餐!" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/msgTxv" android:textSize="22sp" /> < ListView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/lv" android:entries="@array/menuItems" /> </ LinearLayout > |
MainActivity.java
package com.example.yanlei.myapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.TextView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 获取 ListView 对象, 并设置按下操作的监听器 ListView lv=(ListView) findViewById(R.id.lv); lv.setOnItemClickListener(this); } // 存储当前选取的选项 (餐点) 名称字符串 ArrayList<String> selected= new ArrayList<>(); @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView txv = (TextView) view; // 将被单击的 View 对象转成 TextView String item=txv.getText().toString(); if(selected.contains(item)) // 若 ArrayList 已有同名选项 selected.remove(item); // 就将它删除 else // 若 ArrayList 没有同名选项 selected.add(item); // 就将它加到 ArrayList (当成选取的选项) String msg; if(selected.size()>0){ // 若 ArrayList 中的选项数大于 0 msg="你点了:"; for(String str:selected) msg+=" "+str; // 每个选项 (餐点) 名称前空一格 } // 并附加到信息字符串后面 else // 若 ArrayList 中的选项数等于 0 msg="请点餐!"; TextView msgTxv =(TextView) findViewById(R.id.msgTxv); msgTxv.setText(msg); // 显示信息字符串 } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2012-10-04 各种错误代码
2012-10-04 0x8004025A
2012-10-04 在ArcEngine中创建带高程Z值的点和线图层
2011-10-04 Arcgis “字段计算器”可能被禁用的原因