中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-02 00:25:41 來源:腳本之家 閱讀:640 作者:堯石 欄目:移動開發

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

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

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

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

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動態添加標簽及其點擊事件

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

泰宁县| 南宁市| 巴林左旗| 托克托县| 封丘县| 福建省| 黄山市| 高阳县| 三原县| 克山县| 文登市| 竹北市| 台州市| 新津县| 图木舒克市| 兴业县| 延安市| 紫云| 扎兰屯市| 兰考县| 龙门县| 大悟县| 贵州省| 蓬溪县| 丹江口市| 许昌县| 新乡市| 长兴县| 尚义县| 澎湖县| 城口县| 即墨市| 收藏| 蕉岭县| 北川| 保靖县| 海城市| 吉首市| 呼图壁县| 蒲江县| 会东县|