java - Android - ListView 保持为空

标签 java android listview hashmap

我目前在 fragment 中实现 ListView 时遇到问题。 我使用了一个 Hashmap,然后转换成一个 arrayList,如下所示:

     public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    final View myView = inflater.inflate(
            R.layout.fragment_portfolio, container, false);
    ListView listview = (ListView) myView.findViewById(R.id.listview);

    List<HashMap<String, Integer>> fillMaps = new ArrayList<>();
    HashMap<String, Integer> portfoliodata = new HashMap<>();
    portfoliodata.put("Test", 23);
    fillMaps.add(portfoliodata);
    SimpleAdapter adapter = new SimpleAdapter(getActivity().getApplicationContext(), fillMaps, R.layout.my_adapter_item, new String[] { "AAA","BBB" },
            new int[] { android.R.id.text1, android.R.id.text2 });
    listview.setAdapter(adapter);
    return myView;
}

然而,结果总是一片空白。知道为什么这样做以及我如何解决这个问题吗?

提前致谢

最佳答案

getActivity() 不存在于方法 onCreateView() 中,因为您还没有 Activity 的上下文。

您可以探测以将代码移动到 onResume() 方法。

*请记住,您必须将每一列与您的数据相关联,类似这样:

ListView listview;

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {
    View myView = inflater.inflate(
        R.layout.fragment_portfolio, container, false);

    listview = (ListView) myView.findViewById(R.id.listview);

    return myView;
} 

@Override
public void onResume() {
    // create the grid item mapping
    String[] from = new String[] {"AAA","BBB"};
    int[] to = new int[] {android.R.id.text1, android.R.id.text2};

    List<HashMap<String, String>> fillMaps = new ArrayList<>();
    HashMap<String, String> portfoliodata = new HashMap<>();
    portfoliodata.put("AAA", "Text SampleA");
    portfoliodata.put("BBB", "Text SampleB");
    fillMaps.add(portfoliodata);

    SimpleAdapter adapter = new SimpleAdapter(getActivity(), fillMaps, 
        R.layout.my_adapter_item, from, to);
    listview.setAdapter(adapter);
}

祝你好运!

关于java - Android - ListView 保持为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34778265/

相关文章:

java - 为什么 SimpleDateFormat.parse().getTime() 返回不正确(负)值?

java - MyBatis 问题与 IN 条件 <foreach with List inside a Map

java - 使用 2 个不同的数据源 : Spring batch

java - 将参数传递给 java android 类

ListView中的Android数据

android - 当列表项属性在其 DetailsActivity 中更改时维护列表项状态?

android - 如何在 ListView 高度设置为 fill_parent 后显示其他 View

java - 如何在 Rest Web 服务中获取 ServletContext

android - 从url下载图片并在android的LinearLayout背景中设置?

android - onActivityResult崩溃 “Failure delivering result”