gpt4 book ai didi

java - 如何将 Hashmap 值存储在 ListView 中 LongclickListener 的变量中?

转载 作者:行者123 更新时间:2023-12-01 16:16:11 24 4
gpt4 key购买 nike

我是 Android 开发新手。
我希望当用户长按列表中的项目时,其值会存储在变量中,以便我可以进一步使用该变量来运行其他函数。

public class Second extends Fragment {

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


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_second, container, false);
}


@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ListView misc=(ListView) getActivity().findViewById(R.id.lv_misc);

HashMap<String,String> itemmisc = new HashMap<>();
itemmisc.put("Aloo Kathi Roll","Calories: 460");
itemmisc.put("Paneer Roll","Calories: 197");
itemmisc.put("Egg Roll","Calories: 196");
itemmisc.put("Paneer Egg Roll","Calories: 650");
itemmisc.put("Makhani Roll","Calories: 420");
itemmisc.put("Double Egg Roll","Calories: 315");
itemmisc.put("Chocolate Donut","Calories: 340");
itemmisc.put("Chole Bhature","Calories: 427");
itemmisc.put("Aloo Parantha","Calories: 177");
itemmisc.put("Paneer Parantha","Calories: 234");
itemmisc.put("Plain Maggi","Calories: 188");
itemmisc.put("Cheese Maggi","Calories: 322");
itemmisc.put("Hot Chocolate","Calories: 77");
itemmisc.put("Vada Pav","Calories: 197");
itemmisc.put("Veg Hot Dog","Calories: 143");
itemmisc.put("Cheese Fries","Calories: 560");
itemmisc.put("Mayo Fries","Calories: 507");
itemmisc.put("White Pasta","Calories: 200");
itemmisc.put("Red Pasta","Calories: 250");
itemmisc.put("Strawberry Shake","Calories: 282");
itemmisc.put("Chocolate Shake","Calories: 590");
itemmisc.put("Aloo Burger","Calories: 367");
itemmisc.put("Cheese Burger","Calories: 303");

List<HashMap<String,String>> listItemmisc = new ArrayList<>();
SimpleAdapter adapter3 = new SimpleAdapter(getActivity(),listItemmisc,R.layout.list_items_misc, new String[]{"First Line","Second Line"},
new int[]{R.id.text1,R.id.text2});
Iterator it = itemmisc.entrySet().iterator();
while(it.hasNext()){
HashMap<String,String> resultMap = new HashMap<>();
Map.Entry pair = (Map.Entry) it.next();
resultMap.put("First Line",pair.getKey().toString());a
resultMap.put("Second Line",pair.getValue().toString());
listItemmisc.add(resultMap);
}
misc.setAdapter(adapter3);

}
}

这是一个java文件,我在其中使用主线和子线的 HashMap 创建了一个 ListView 。我想从这个列表中检索长按项目的值。 longpressclicklistener 使用位置,但我不知道如何从该 HashMap 中接收位置并仅在其中存储主线。

最佳答案

1- 使用自定义适配器扩展 BaseAdapter(例如 xxx)1-1 在您的适配器中, map 对象必须可访问(例如通过发送到自定义适配器)2-在您的自定义适配器中重写 getView() 的覆盖方法3- 在 getView 中,位置在您的访问中。通过获取 listView 的元素并借助“position”参数,您可以获得所选列表项的值项。然后将所选值与 map 的键进行比较。4-当Map键项与提取的选定值项(从列表中)相等时,从Map对象中获取适应键的值。此时您拥有选定列表项的后面值并且可以执行您的任务。所有这些任务都是在自定义适配器的 getView 方法中完成的。

自定义适配器承包商示例:

public SimpleIndividualAdapter(Context iApplicationContext, Collection<SimpleIndividual> iData ,param2,param3,... ){} 

根据您的需要,iData 可能是 HashMap 类型的 Map 对象。有关更多调查,请参阅创建自定义适配器。

在 getView 方法(覆盖方法)中,您拥有 View ,并且可以获取列表并通过位置参数获取选择的项目。

getView() 的一部分...:

@Override
public View getView(final int position, View convertView, ViewGroup parent){}

关于java - 如何将 Hashmap 值存储在 ListView 中 LongclickListener 的变量中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62383635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com