Android 多个include标签的监听事件处理
来源:互联网 发布:java notifyall 使用 编辑:程序博客网 时间:2024/06/05 10:38
include标签的作用是为了xml文件代码的模块化,详细不再多提。主要是说说include标签的监听。
网上也有很多例子,不过大多是只写了一个include标签的监听,如果需要实现多个include标签的监听怎么做呢?我至少是没在百度搜出来,经过不断的尝试,修改,终于找到了方法,现在分享给大家,希望对大家有帮助。
先介绍一点,就是include标签本身是不能设置监听的,不论是android:onClick 或者 是对 include 绑定监听器setOnClickListener,都不起作用(我的实验结果是这样,具体的没有查文档)。不论一个界面有多少个include,android系统只是对include标签里面的子标签监听,但由于子标签只有一个,所以无法区分监听结果,其实解决办法也很简单,只需要单独对include标签的每个子标签重新设置 id 即可。下面是代码:
需要复写的xml文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:id="@+id/sub_tv" android:layout_width="fill_parent" android:layout_height="45dp" android:clickable="true" android:onClick="onClick" android:background="#008800" android:layout_marginTop="10dp" android:gravity="center_vertical" android:paddingLeft="10dp" android:paddingRight="10dp" android:text="测试" android:textSize="17sp" android:textColor="#ffffff" /></LinearLayout>
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <include android:id="@+id/item1" layout="@layout/sub_my_resume_item" /> <include android:id="@+id/item2" layout="@layout/sub_my_resume_item" /> <include android:id="@+id/item3" layout="@layout/sub_my_resume_item" /> <include android:id="@+id/item4" layout="@layout/sub_my_resume_item" /></LinearLayout>
代码:
package com.example.testincludeonclick;import android.support.v7.app.ActionBarActivity;import android.os.Bundle;import android.view.View;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends ActionBarActivity { private int[] id = { R.id.item1, R.id.item2, R.id.item3, R.id.item4 }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); for (int i = 0; i < id.length; i++) { View v = findViewById(id[i]); TextView tv = (TextView) v.findViewById(R.id.sub_tv); tv.setId(i); tv.setText("测试 " + (i + 1)); } } public void onClick(View v) { System.out.println("sub_id: " + v.getId()); switch (v.getId()) { case 0: Toast.makeText(getApplicationContext(), "测试1", 1).show(); break; case 1: Toast.makeText(getApplicationContext(), "测试2", 1).show(); break; case 2: Toast.makeText(getApplicationContext(), "测试3", 1).show(); break; case 3: Toast.makeText(getApplicationContext(), "测试4", 1).show(); break; default: break; } }}
0 0
- Android 多个include标签的监听事件处理
- Android include标签的监听事件处理
- android 监听事件的处理
- Android include的使用,id一样怎么监听点击事件
- Android 事件监听处理
- Android 事件监听处理
- Android 多个listview监听item的点击事件
- 【Android的事件处理】-----基于监听的事件处理
- Android的事件处理之基于监听的事件处理
- Android的事件处理之基于监听的事件处理
- Android基于监听的事件处理
- Android基于监听的事件处理机制
- Android基于监听的事件处理
- android基于监听的事件处理机制
- android事件处理机制-基于监听的事件处理
- Android事件处理之一 基于监听的事件处理
- Android中的事件处理总结-基于监听的事件处理
- Android事件处理之基于监听的事件处理
- AWK 简明教程
- PhoneGap
- Ubuntu下升级git版本(源码编译安装git)
- 自己总结的一些常用代码
- 常用的排序算法的时间复杂度和空间复杂度
- Android 多个include标签的监听事件处理
- WEBLOGIC通过WTC调TUXEDO服务
- Android开源项目分包方式学习
- JAVA_HOME,CLASSPATH,PATH的作用
- 理解Android的Activity launchMode:standard,singleTop,singleTask,singleInstance
- iOS8 定位问题
- 数据结构与算法常见笔试题
- MVC初学笔记(4):分部视图异步加载
- 使用XML文件方式配置log4cxx(log4cxx xml例子)