android include 点击事件,Android 多个include标签的监听事件处理
include標簽的作用是為了xml文件代碼的模塊化,詳細不再多提。主要是說說include標簽的監(jiān)聽。
網(wǎng)上也有很多例子,不過大多是只寫了一個include標簽的監(jiān)聽,如果需要實現(xiàn)多個include標簽的監(jiān)聽怎么做呢?我至少是沒在百度搜出來,經(jīng)過不斷的嘗試,修改,終于找到了方法,現(xiàn)在分享給大家,希望對大家有幫助。
先介紹一點,就是include標簽本身是不能設(shè)置監(jiān)聽的,不論是android:onClick 或者 是對 include 綁定監(jiān)聽器setOnClickListener,都不起作用(我的實驗結(jié)果是這樣,具體的沒有查文檔)。不論一個界面有多少個include,android系統(tǒng)只是對include標簽里面的子標簽監(jiān)聽,但由于子標簽只有一個,所以無法區(qū)分監(jiān)聽結(jié)果,其實解決辦法也很簡單,只需要單獨對include標簽的每個子標簽重新設(shè)置 id 即可。下面是代碼:
需要復寫的xml文件:
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" />
布局文件:
android:id="@+id/item1"layout="@layout/sub_my_resume_item" />
android:id="@+id/item2"layout="@layout/sub_my_resume_item" />
android:id="@+id/item3"layout="@layout/sub_my_resume_item" />
android:id="@+id/item4"layout="@layout/sub_my_resume_item" />
代碼:
packagecom.example.testincludeonclick;importandroid.support.v7.app.ActionBarActivity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.TextView;importandroid.widget.Toast;public class MainActivity extendsActionBarActivity {private int[] id ={ R.id.item1, R.id.item2, R.id.item3, R.id.item4 };
@Overrideprotected voidonCreate(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 voidonClick(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;
}
}
}
總結(jié)
以上是生活随笔為你收集整理的android include 点击事件,Android 多个include标签的监听事件处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 图标点击变大,使andr
- 下一篇: 但凭鸿蒙是什么意思,你好,鸿蒙!正式版,