Fragment中如何获取listview

cjh_tostring 2013-12-27 01:54:01
我的FileFragment继承了Fragment,现在我想要在FileFragment中获取获取file.xml中的一个listview,我用了下面两种方式:
//fileListView=(ListView)getActivity().findViewById(R.id.file_list);得到空指针
fileListView=(ListView)inflater.inflate(R.id.file_list, null);找不到资源

请指教在Fragment中如何获取listview。
...全文
7393 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_35257774 2016-06-08
  • 打赏
  • 举报
回复
view = inflater.inflate(R.layout....,container, false); 然后new一个adapter的时候,第一个参数为view.getContext()
ruiman 2016-03-23
  • 打赏
  • 举报
回复
引用 6 楼 qq_33613082 的回复:
我就是搞不清楚context这个玩意
是不是在一个fragment 里new一个adapter时,第一个参数用THIS,而自定义的adapter里是context,两个不匹配啊,我也在学习时遇到了这个问题。你悠么解决的啊?
  • 打赏
  • 举报
回复
我就是搞不清楚context这个玩意
依然绿茶 2013-12-27
  • 打赏
  • 举报
回复
引用 3 楼 cjh_tostring 的回复:
@ncepu307 现在这个listview是能出来了,不过我设置的数据怎么没显示啊,方法如下:


@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View rootView = inflater.inflate(R.layout.file, null);
		fileListView = (ListView) rootView.findViewById(R.id.file_listView);
		List<Map<String,Object>> listData=new ArrayList<Map<String,Object>>();
		 
		 for (int i = 0; i < 50; i++) {
			Map<String,Object> map=new HashMap<String,Object>();
			map.put("file_list_item1","第"+ i+"个");
			map.put("file_list_item2", "yyyyyyyyyy");
			listData.add(map);
		}
		 
		 SimpleAdapter simpleAdapter=new SimpleAdapter(
				this.getActivity().getApplicationContext(),
				 listData,
				 R.layout.file_item,
				 new String[]{"file_list_item1","file_list_item2"}, 
				 new int[]{R.id.file_list_item1,R.id.file_list_item2});
		 fileListView.setAdapter(simpleAdapter);
		return inflater.inflate(R.layout.file, null);
	}

return rootView; 即可
cjh_tostring 2013-12-27
  • 打赏
  • 举报
回复
@ncepu307 现在这个listview是能出来了,不过我设置的数据怎么没显示啊,方法如下:


@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View rootView = inflater.inflate(R.layout.file, null);
		fileListView = (ListView) rootView.findViewById(R.id.file_listView);
		List<Map<String,Object>> listData=new ArrayList<Map<String,Object>>();
		 
		 for (int i = 0; i < 50; i++) {
			Map<String,Object> map=new HashMap<String,Object>();
			map.put("file_list_item1","第"+ i+"个");
			map.put("file_list_item2", "yyyyyyyyyy");
			listData.add(map);
		}
		 
		 SimpleAdapter simpleAdapter=new SimpleAdapter(
				this.getActivity().getApplicationContext(),
				 listData,
				 R.layout.file_item,
				 new String[]{"file_list_item1","file_list_item2"}, 
				 new int[]{R.id.file_list_item1,R.id.file_list_item2});
		 fileListView.setAdapter(simpleAdapter);
		return inflater.inflate(R.layout.file, null);
	}

cjh_tostring 2013-12-27
  • 打赏
  • 举报
回复
引用 1 楼 ncepu307 的回复:
View rootView = inflater.inflate(R.layout.file, null); //先解析file.xml布局,得到一个view
ListView listView = (ListView) rootView.findViewById(R.id.file_list);
太感谢了,现在是边学边做,亚历山大,等下再结贴,可能还有其他问题顺便问下。
依然绿茶 2013-12-27
  • 打赏
  • 举报
回复
View rootView = inflater.inflate(R.layout.file, null); //先解析file.xml布局,得到一个view
ListView listView = (ListView) rootView.findViewById(R.id.file_list);

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧