ListView 是一种常见的用户界面组件,用于显示一系列项目。它允许用户滚动查看所有项目,并且可以处理大量数据而不会影响性能。分组 ListView 是 ListView 的一种扩展,它将项目按照某种逻辑分组显示,每组通常有一个标题。
以下是一个简单的 Android 示例,展示如何实现一个分组 ListView:
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class GroupedListActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_grouped_list);
ListView listView = findViewById(R.id.listView);
// 创建数据
List<Map<String, String>> groupedData = new ArrayList<>();
Map<String, String> group1 = new HashMap<>();
group1.put("title", "Group 1");
group1.put("item", "Item 1.1");
groupedData.add(group1);
Map<String, String> group2 = new HashMap<>();
group2.put("title", "Group 2");
group2.put("item", "Item 2.1");
groupedData.add(group2);
// 创建适配器
ArrayAdapter<Map<String, String>> adapter = new ArrayAdapter<>(
this,
android.R.layout.simple_list_item_2,
android.R.id.text1,
groupedData) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
Map<String, String> item = getItem(position);
((TextView) view.findViewById(android.R.id.text1)).setText(item.get("title"));
((TextView) view.findViewById(android.R.id.text2)).setText(item.get("item"));
return view;
}
};
listView.setAdapter(adapter);
}
}
问题:ListView 分组显示不正确,某些项目没有正确分组。
原因:
解决方法:
通过以上步骤,可以有效解决 ListView 分组显示不正确的问题。
领取专属 10元无门槛券
手把手带您无忧上云