llf2580 2023-03-19 14:24 采纳率: 66.7%
浏览 23
已结题

AndroidStudio的ListView怎么使用?

做了一个简单的主界面,有一个按钮,点击后跳转DietActivity,布局是一个ScrollView,里面放了一个垂直LinearLayout,LinearLayout里放置了一个TextView和一个ListView(id是listView_diet),但是我在拖动加入ListView控件时,布局就只显示一个item,之前都是显示好几行,不知道哪里出了问题

img


布局代码:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView 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:background="@color/bg"
    tools:context=".home.DietActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:id="@+id/textView71"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:paddingTop="20dp"
            android:paddingBottom="20dp"
            android:text="8天轻断食计划"
            android:textColor="@color/black"
            android:textSize="24sp" />

        <ListView
            android:id="@+id/listView_diet"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />
    </LinearLayout>
</ScrollView>

主界面点击按钮后利用intent跳转DietActivity
DietActivity代码:

public class DietActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_diet);
        ListView dietList = findViewById(R.id.listView_diet);
        String[] listname = new String[] {"轻断食第1天","轻断食第2天","轻断食第3天","轻断食第4天","轻断食第5天","轻断食第6天","轻断食第7天","轻断食第8天"};
        dietList.setAdapter(new ArrayAdapter<String>(DietActivity.this, android.R.layout.simple_list_item_1,listname));
    }
}

但是运行后只显示一个item,这是怎么回事呢?

img

  • 写回答

2条回答 默认 最新

  • yibumuxue 2023-03-19 15:00
    关注

    我建议您将ScrollView移除,因为ListView本身已经有滚动功能。使用ScrollView嵌套ListView可能会导致滚动问题。另外,如果您想要使用一个可以滚动的布局,可以考虑使用RecyclerView代替ListView。

    简单演示下
    1、在布局文件中添加ListView控件,例如:

    <ListView
        android:id="@+id/listView_diet"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    

    2、在Activity中找到ListView控件并设置适配器,例如:

    ListView listView = findViewById(R.id.listView_diet);
    String[] items = {"item1", "item2", "item3"};
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);
    listView.setAdapter(adapter);
    

    这里创建了一个包含三个字符串元素的数组,并将其传递给一个ArrayAdapter对象。这个适配器将这些元素显示为简单的文本行。最后,将适配器设置到ListView上。

    3、(可选)如果您需要处理ListView中的项目点击事件,您可以添加一个OnItemClickListener监听器,例如:

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String selectedItem = (String) parent.getItemAtPosition(position);
            // 处理被选中的项目
        }
    });
    

    这里添加了一个OnItemClickListener监听器,当用户点击ListView中的任何一个项目时,将调用onItemClick()方法,并将被选中的项目的位置和内容传递给该方法。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月27日
  • 已采纳回答 3月19日
  • 创建了问题 3月19日

悬赏问题

  • ¥15 YOLOv5在进行trainpy训练后为什么会出现这种情况(语言-python)
  • ¥15 关于远程桌面的鼠标位置转换
  • ¥15 MATLAB和mosek的求解问题
  • ¥20 修改中兴光猫sn的时候提示失败
  • ¥15 java大作业爬取网页
  • ¥15 怎么获取欧易的btc永续合约和交割合约的5m级的历史数据用来回测套利策略?
  • ¥15 有没有办法利用libusb读取usb设备数据
  • ¥15 为什么openeluer里面按不了python3呢?
  • ¥15 关于#matlab#的问题:训练序列与输入层维度不一样
  • ¥15 关于Ubuntu20.04.3LTS遇到的问题:在安装完CUDA驱动后,电脑会进入卡死的情况,但可以通过键盘按键进入安全重启,但重启完又会进入该情况!