android - 如何将 Hashmap 数据设置为 android 中的 ListView ?

标签 android

我有通用 HashMap 。我需要将hashmap的所有项填充到listview中。适配器类是什么。

这是我的适配器类

package com.domore.settextviewdynamically;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/**
 * Created by MY WORLD on 1/11/2016.
 */
public class MyAdpter extends BaseAdapter {
    private final ArrayList mData;

//    ArrayList<HashMap<String,String>> map;
    private Context context;
    private LayoutInflater inflater;
    public MyAdpter(Context context,HashMap<String,String> map) {
        mData = new ArrayList();
        mData.addAll(map.entrySet());
//        this.map=map;
    }

    @Override
    public int getCount() {
        return mData.size();
    }

    @Override
    public Map.Entry<String,String> getItem(int position) {
        return (Map.Entry) mData.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }
    public class Holder{
        TextView overs;
        TextView balls;
    }

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

        if (convertView == null) {
            result = LayoutInflater.from(parent.getContext()).inflate(R.layout.my_adapter_item, parent, false);
        } else {
            result = convertView;
        }

        Map.Entry<String, String> item = getItem(position);

        ((TextView) result.findViewById(R.id.overs)).setText(item.getKey());
        ((TextView) result.findViewById(R.id.balls)).setText(item.getValue());

        return result;
    }
}

这是我调用我的适配器的代码

adapter=new MyAdpter(this,hashMap);
lst.setAdapter(adapter);

请帮我解决这个问题。 我只得到了 hashmap 的最后一个元素。

最佳答案

从 HashMap 获取数据:

     String data,key;
            for(String keys:mData.keyset())
            {
             key=keys;
             data=mData.get(key);

           ((TextView) result.findViewById(R.id.overs)).setText(key);
            ((TextView) result.findViewById(R.id.balls)).setText(data);
 }

试试这个方法..祝你好运

关于android - 如何将 Hashmap 数据设置为 android 中的 ListView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34721158/

相关文章:

android - GSON:仅在已发布的应用程序中使用我的 JSONEntity 无法正确创建,使用 Android Studio 可以正常工作

android - 使用 Cmake 和 Ninja 限制 ndkBuild 的 CPU 内核

android - 我怎样才能得到IMEI号。我的设备通过 ionic ?

android - 获取错误构造函数 Intent(new View.OnClickListener(){}, Class<NumberBoardActivity>) 在 android 应用程序代码 : 中未定义

Android: Intent 通过通知传递给 Activity ......我没有在 Intent 中获得正确的额外内容

android - 如何将android camera2设置为比率18.5 :9

java - 用于下载 apache commons-net 库的 url 链接

java - 将数据从 ListView 中单击的项目传递到另一个 Activity 时出错

android - 我们使用哪个包来建立 HTTP 连接?

java - 通话时自动语音留言