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

在Android Fragment中添加ListView的最新实现方案求助

Fragment 中添加 ListView 实现代码

1. 调整 fragment_settings.xml 布局

在原有的FrameLayout中加入ListView控件:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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="com.bhiruva.dashboard.fragments.FragmentSettings">

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

</FrameLayout>

2. 更新 FragmentSettings.java 逻辑

修改后的完整代码如下:

package com.bhiruva.dashboard.fragments;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import androidx.fragment.app.Fragment;

import com.bhiruva.R;

public class FragmentSettings extends Fragment {

    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    private String mParam1;
    private String mParam2;
    // 声明ListView和设置项数据
    private ListView settingsListView;
    private String[] settingsItems = {"账号设置", "消息通知", "隐私权限", "清除缓存", "关于我们", "版本更新"};

    public FragmentSettings() {
        // Required empty public constructor
    }

    public static FragmentSettings newInstance(String param1, String param2) {
        FragmentSettings fragment = new FragmentSettings();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // 先获取Fragment的根布局
        View rootView = inflater.inflate(R.layout.fragment_settings, container, false);
        // 从根布局中查找ListView控件
        settingsListView = rootView.findViewById(R.id.settings_list);
        // 初始化适配器,使用系统自带的简单列表项布局,也可以替换为自定义布局
        ArrayAdapter<String> adapter = new ArrayAdapter<>(requireContext(),
                android.R.layout.simple_list_item_1, settingsItems);
        // 给ListView设置适配器
        settingsListView.setAdapter(adapter);
        
        // 可选:添加列表项点击事件
        settingsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String clickedItem = settingsItems[position];
                Toast.makeText(requireContext(), "点击了" + clickedItem, Toast.LENGTH_SHORT).show();
                // 在这里添加不同设置项的跳转逻辑
            }
        });
        
        return rootView;
    }
}

说明

  • 以上代码全部为Android当前版本仍支持的稳定API,无废弃方法
  • 如果需要自定义列表项的样式,只需自行编写列表项布局XML,将android.R.layout.simple_list_item_1替换为你的自定义布局ID即可
  • settingsItems数组内容可以根据实际业务需求替换为对应的设置项内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:12:03