国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實現動態添加標簽及其點擊事件

2019-12-12 00:25:24
字體:
來源:轉載
供稿:網友

在做Android開發的時候,會遇到動態添加標簽讓用戶選擇的功能,所以自己寫了個例子,運行效果圖如下。

標簽可以左右滑動進行選擇,點擊的時候,會彈出toast提示選擇或者取消選擇了哪個標簽。通過動態添加TextView作為標簽,并給TextView設置背景,通過selector選擇器改變其背景顏色,來確定是否處于選中狀態。

代碼如下所示:

1、標簽的布局文件,我在標簽里只設置了一個TextView

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >  <TextView  android:id="@+id/textView1"  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_margin="10dp"  android:background="@drawable/mark_select"  android:enabled="false"  android:padding="10dp"  android:text="TextView" /> </LinearLayout>

2、在res文件夾下新建drawable文件夾,標簽的背景設為@drawable/mark_select,代碼如下所示:

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android" >  <item android:drawable="@drawable/mark_notbeselected" android:state_enabled="false"/> <item android:drawable="@drawable/mark_beselected" android:state_enabled="true"/> </selector>

當標簽處于選中狀態,背景為@drawable/mark_beselected,當標簽處于未選中狀態,背景為@drawable/mark_notbeselected

其中mark_notbeselected代碼為:

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" >  <solid android:color="#ffffff" />  <corners android:radius="3dip" />  <stroke  android:width="1dip"  android:color="#1cb0ba" /> </shape>

mark_beselected代碼為:

<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" >  <solid android:color="#1cb0ba" />  <corners android:radius="3dip" />  <stroke  android:width="1dip"  android:color="#1cb0ba" /> </shape>

3、主頁面布局文件里包括一個水平滾動條HorizontalScrollView,代碼如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >  <HorizontalScrollView  android:id="@+id/horizontalScrollView1"  android:layout_width="match_parent"  android:layout_height="wrap_content" >   <LinearLayout   android:id="@+id/linearLayout1"   android:layout_width="match_parent"   android:layout_height="match_parent"   android:orientation="horizontal" >  </LinearLayout> </HorizontalScrollView> </LinearLayout>

4、MainActivity.java代碼如下所示:

public class MainActivity extends Activity {  List<String> list; private LinearLayout linearLayout;  @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); linearLayout = (LinearLayout) findViewById(R.id.linearLayout1); //添加標簽內容 list = new ArrayList<String>(); for (int i = 0; i < 10; i++) { String str = "標簽" + i; list.add(str); } //初始化標簽 initMarksView(); } private void initMarksView() { for (int i = 0; i < list.size(); i++) { View view = View.inflate(MainActivity.this, R.layout.mark_layout, null); TextView tv = (TextView) view.findViewById(R.id.textView1); tv.setText(list.get(i)); tv.setTag(i); view.setTag(false); // 設置view的點擊事件,與onClick中的View一致 //否則需要在onClick中,去findViewById,找出設置點擊事件的控件進行操作 //若不如此,則無法觸發點擊事件 view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {  // TODO Auto-generated method stub  TextView tv = (TextView) v.findViewById(R.id.textView1);  Log.i("dxl", "TextView click");  if ((Boolean) v.getTag()) {  v.setTag(false);  tv.setEnabled(false);  Toast.makeText(MainActivity.this, "你取消了選擇標簽" + tv.getTag(), Toast.LENGTH_SHORT).show();  } else {  v.setTag(true);  tv.setEnabled(true);  Toast.makeText(MainActivity.this, "你選擇了標簽" + tv.getTag(), Toast.LENGTH_SHORT).show();  } } }); linearLayout.addView(view); } }}

至此,便實現了動態添加表情,并可以處理標簽點擊事件的功能。

源代碼下載:Android動態添加標簽及其點擊事件

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 襄垣县| 安多县| 大同县| 家居| 玉树县| 灵川县| 吴忠市| 荔波县| 河西区| 泗水县| 博兴县| 香格里拉县| 松潘县| 广州市| 泽州县| 常宁市| 江陵县| 永年县| 新兴县| 姚安县| 伊春市| 泽库县| 双鸭山市| 兴义市| 庆安县| 太仓市| 衡阳县| 垦利县| 靖安县| 固阳县| 冀州市| 台东县| 景洪市| 桂平市| 嘉峪关市| 文山县| 汪清县| 临朐县| 弥渡县| 华宁县| 揭西县|