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

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 Abaqus打不开cae文件怎么办?
  • ¥20 双系统开机引导中windows系统消失问题?
  • ¥15 小程序准备上线,软件开发公司需要提供哪些资料给甲方
  • ¥15 关于生产日期批次退货退款,库存回退的问题
  • ¥15 手机应用的时间可以修改吗
  • ¥15 docker 运行OPEN-webui异常
  • ¥15 麒麟系统如何删除光盘刻录痕迹
  • ¥15 recipe通过gem协议传的是什么
  • ¥15 TS2307: Cannot find module 'cc'.
  • ¥15 100小时学会sap 书上pp章节5.22,标准成本计算逻辑?