怎样给Fragment中的按钮添加点击事件?

cjh_tostring 2013-12-27 03:40:02
我按照activity中的添加没有响应,怎么回事?
...全文
32775 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bugman努力努力 2016-06-01
  • 打赏
  • 举报
回复
引用 7 楼 shaopaul11 的回复:
解决方法在这篇文章中: http://blog.csdn.net/guolin_blog/article/details/8881711
爱你摸摸大
owm666 2015-07-04
  • 打赏
  • 举报
回复 1
按钮初始化 和 添加点击事件 都必须在onActivityCreated()里面执行
此牛有毒 2014-08-13
  • 打赏
  • 举报
回复
fragment.getView().findViewById(R.id.function1); function1为fragment总节点
mindlead 2014-08-02
  • 打赏
  • 举报
回复
http://blog.csdn.net/vpingchangxin/article/details/8454956
mindlead 2014-08-02
  • 打赏
  • 举报
回复
要响应ListView,需要使用Listfragment替代Fragment.
雨落嫣然 2014-07-26
  • 打赏
  • 举报
回复
引用 5 楼 cjh_tostring 的回复:
我现在改成这样了,还是不行。。。 控件能正常显示的,没数据,事件没有响应。

public class FileFragment extends Fragment {
	private ListView fileListView;
	private TextView searchTextView;
	private Button button_ok;

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View rootView = inflater.inflate(R.layout.file, container, false); // 先解析file.xml布局,得到一个view
		fileListView = (ListView) rootView.findViewById(R.id.file_listView);
		searchTextView = (TextView) rootView.findViewById(R.id.searchTextView);
		button_ok = (Button) rootView.findViewById(R.id.button_ok);
		
		return inflater.inflate(R.layout.file, null);
	}

	public void onActivityCreated() {
		// 给fileListView添加数据
		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);

		fileListView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				new Toast(getActivity().getApplicationContext())
						.setText("XXXXXXXXX");
			}
		});

		// 给button_ok添加点击事件
		OnClickListener listener0 = null;
		listener0 = new OnClickListener() {
			public void onClick(View v) {
				System.out.println("xxxxxxxxxx");
			}
		};
		searchTextView.setOnClickListener(listener0);
		button_ok.setOnClickListener(listener0);

	}

}


你解决了没有
shaopaul11 2014-04-23
  • 打赏
  • 举报
回复
解决方法在这篇文章中: http://blog.csdn.net/guolin_blog/article/details/8881711
yzzwd 2014-04-14
  • 打赏
  • 举报
回复
楼主解决了吗?怎么解决的?
cjh_tostring 2013-12-27
  • 打赏
  • 举报
回复
我现在改成这样了,还是不行。。。 控件能正常显示的,没数据,事件没有响应。

public class FileFragment extends Fragment {
	private ListView fileListView;
	private TextView searchTextView;
	private Button button_ok;

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View rootView = inflater.inflate(R.layout.file, container, false); // 先解析file.xml布局,得到一个view
		fileListView = (ListView) rootView.findViewById(R.id.file_listView);
		searchTextView = (TextView) rootView.findViewById(R.id.searchTextView);
		button_ok = (Button) rootView.findViewById(R.id.button_ok);
		
		return inflater.inflate(R.layout.file, null);
	}

	public void onActivityCreated() {
		// 给fileListView添加数据
		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);

		fileListView.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				new Toast(getActivity().getApplicationContext())
						.setText("XXXXXXXXX");
			}
		});

		// 给button_ok添加点击事件
		OnClickListener listener0 = null;
		listener0 = new OnClickListener() {
			public void onClick(View v) {
				System.out.println("xxxxxxxxxx");
			}
		};
		searchTextView.setOnClickListener(listener0);
		button_ok.setOnClickListener(listener0);

	}

}


  • 打赏
  • 举报
回复
View rootView = inflater.inflate(R.layout.file, container,false); 事件不要在onCreateView里面加,需要的话再onActivityCreate里边加,使用方法和在activity里边是一样的。
cjh_tostring 2013-12-27
  • 打赏
  • 举报
回复
我这里的想给fileListView和button_ok添加相应的处理看,可是都没有实现,fileListView中没有数据,button_ok事件没有相应。

public class FileFragment extends Fragment {
	private ListView fileListView;
	private TextView searchTextView;
	private Button button_ok;

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View rootView = inflater.inflate(R.layout.file, null); // 先解析file.xml布局,得到一个view
		fileListView = (ListView) rootView.findViewById(R.id.file_listView);
		searchTextView = (TextView) rootView.findViewById(R.id.searchTextView);
		button_ok = (Button) rootView.findViewById(R.id.button_ok);

		// 给button_ok添加点击事件
		OnClickListener listener0 = null;
		listener0 = new OnClickListener() {
			public void onClick(View v) {
				System.out.println("xxxxxxxxxx");
				Intent intent0 = new Intent(getActivity()
						.getApplicationContext(), MainActivity.class);
				startActivity(intent0);
			}
		};
		searchTextView.setOnClickListener(listener0);
		button_ok.setOnClickListener(listener0);

		// 给fileListView添加数据
		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);
	}

}

afairycell 2013-12-27
  • 打赏
  • 举报
回复
OnClickListener listener0 = null;
afairycell 2013-12-27
  • 打赏
  • 举报
回复
button0 = (Button) findViewById(R.id.button0); listener0 = new OnClickListener() { public void onClick(View v) { Intent intent0 = new Intent(ActivityMain.this, ActivityFrameLayout.class); setTitle("FrameLayout"); startActivity(intent0); } }; button0.setOnClickListener(listener0);

80,362

社区成员

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

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