在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
相关产品推荐
相关产品推荐

