使用ListView实现菜品选择的文本显示,效果如图:
流程如下:
- 首先在xml中定义ListView
-
<!-- 列表视图 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <ListView android:id="@+id/select" android:layout_width="match_parent" android:layout_height="wrap_content" android:entries="@array/select"/> </LinearLayout>
- 再在字符资源里面定义要填充的内容
- 注意要在xml里面用entries属性引入
- 最后在主活动java中完成ListView的条目点击事件
-
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { //存放点菜字符 ArrayList<String> selected = new ArrayList<>(); @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView txv = (TextView) view; String item = txv.getText().toString(); if (selected.contains(item)) selected.remove(item); else selected.add(item); String msg; if (selected.size() > 0) { msg = "你已选择:"; for (String str : selected) msg += " " + str; System.out.println(msg); } else msg = "请选择菜品!"; TextView msgTxv = (TextView) findViewById(R.id.orderData); msgTxv.setText(msg); } });
完整代码如下:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".MainActivity">
<!--
2021.9.29
编写用户信息填写界面,使用布局嵌套,使用控件ImageView\TextView\EditText\RadioBotton\CheckBox\Button\
Written by Zhong Tao
-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:ignore="MissingConstraints"
tools:layout_editor_absoluteX="16dp"
tools:layout_editor_absoluteY="68dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<ImageView
android:id="@+id/imageView2"
android:layout_width="300px"
android:layout_height