[英]Android - Listview stays empty
I am currently having a problem implementing a listview in a fragment. 我目前在实现片段中的列表视图时遇到问题。 I used a Hashmap then converted into an arrayList as follows: 我使用了一个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;
}
Yet, the result is always a totally blank fragment. 但是,结果始终是完全空白的片段。 Any idea why it is doing so and how I could solve this? 知道为什么这样做以及如何解决这个问题吗?
Thank you in advance 先感谢您
getActivity() doesn't exist inside method onCreateView(), because you don't have the Activity's context yet. getActivity()在onCreateView()方法中不存在,因为您还没有Activity的上下文。
You can probe to move your code to onResume() method. 您可以探测将代码移动到onResume()方法。
*And remember that you have to connect each column with your data , something like that: *请记住,必须将每一列与数据连接起来 ,就像这样:
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);
}
Good luck! 祝好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.