1. 程式人生 > >【Android】下拉列表、拖動條、星級評分條與標籤文字的觸控事件

【Android】下拉列表、拖動條、星級評分條與標籤文字的觸控事件

下拉列表、拖動條與星級評分條都是Android中的一些基本元件。

寫一個小小的程式,來說明其用法。

如下圖:


當下拉列表有值選定之後,則彈出相應的提示資訊,哪個值被選擇。星際評分條也一樣,獲取使用者選擇的星數。

標籤文字被觸控則顯示其被觸控。

滑動條,在拖動的時候,則在標籤文字顯示其值。因為,如果用彈出訊息顯示其滑動值,很不順暢。

首先,把res\values\strings.xml,修改成如下程式碼:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">進度條及其他元件</string>
    <string name="action_settings">Settings</string>
    <string name="TextView1">下拉列表:</string>
    <string name="TextView2">拖動條:</string>
    <string name="TextView3">星級評分條:</string>
</resources>
之後,在res\values中新建一個array.xml檔案,寫入如下程式碼,這個檔案是用來填充下拉列表的選項的:
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="spinner1">
        <item>選項1</item>
        <item>選項2</item>
        <item>選項3</item>
    </string-array>

</resources>
然後,在res\layout\activity_main.xml中進行佈局,佈局思想如下:


因此activity_main.xml的程式碼如下,給要操作的元件賦予id:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/TextView1" />

        <Spinner
            android:id="@+id/spinner1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:entries="@array/spinner1" />
    </LinearLayout>

    <TextView
        android:id="@+id/TextView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/TextView2" />

    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/TextView3" />

    <RatingBar
        android:id="@+id/ratingBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:numStars="5" />

</LinearLayout>
其中星級評分條的屬性中numStars為最大星數。

之後在Mainactivity.java中給各個元件新增監聽器:

package com.progresscomponent;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.RatingBar;
import android.widget.RatingBar.OnRatingBarChangeListener;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
	private Spinner spinner1;
	private TextView textView2;
	private SeekBar seekBar1;
	private RatingBar ratingBar1;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		//獲取各個元件
		spinner1=(Spinner)findViewById(R.id.spinner1);
		textView2 = (TextView) findViewById(R.id.TextView2);
		seekBar1=(SeekBar)findViewById(R.id.seekBar1);
		ratingBar1=(RatingBar)findViewById(R.id.ratingBar1);
		//下拉列表的改變的監聽器
		spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
			@Override
			public void onItemSelected(AdapterView<?> parent, View arg1,
					int pos, long arg3) {
				String result=parent.getItemAtPosition(pos).toString();
				Toast.makeText(MainActivity.this, "下拉列表被更改,"+result+"被選擇",
						Toast.LENGTH_LONG).show();				
			}
			@Override
			public void onNothingSelected(AdapterView<?> arg0) {
				// TODO Auto-generated method stub				
			}			
		});
		//標籤文字被觸控的監聽器
		textView2.setOnTouchListener(new OnTouchListener() {
			@Override
			public boolean onTouch(View arg0, MotionEvent arg1) {
				Toast.makeText(MainActivity.this, "“拖動條”這幾個字被觸控!",
						Toast.LENGTH_LONG).show();
				return false;
			}
		});
		//滑動條被拖動的監聽器
		seekBar1.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
			
			@Override
			public void onStopTrackingTouch(SeekBar arg0) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onStartTrackingTouch(SeekBar arg0) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void onProgressChanged(SeekBar arg0, int result, boolean arg2) {
				// TODO Auto-generated method stub
				textView2.setText( "滑動條,當前值為:"+result);
			}
		});
		//星級評分條被打分的監聽器
		ratingBar1.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
			
			@Override
			public void onRatingChanged(RatingBar arg0, float result, boolean arg2) {
				Toast.makeText(MainActivity.this, "星級評分條被評分,值為:"+result,
						Toast.LENGTH_LONG).show();					
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.main, menu);
		return true;
	}

}



相關推薦

Android列表星級評分標籤文字觸控事件

下拉列表、拖動條與星級評分條都是Android中的一些基本元件。 寫一個小小的程式,來說明其用法。 如下圖: 當下拉列表有值選定之後,則彈出相應的提示資訊,哪個值被選擇。星際評分條也一樣,獲取使用者選擇的星數。 標籤文字被觸控則顯示其被觸控。 滑動條,在拖動的時候,則在標

最簡單aNDROID列表

下拉列表 列表 ongl hao123 music aid roi .com 5% %E6%80%A5%E6%B1%82%7E%7E%E5%AF%B9%E5%A4%A7%E5%9B%BE%E7%89%87%E8%BF%9B%E8%A1%8C%E8%B0%83%E8%89%B

AndroidMaterial Design 之四 五 六 AppBarLayoutCoordinatorLayoutCollapsingToolbarLayout使用

一、AppBarLayout AppBarLayout是繼承自LinearLayout,預設是垂直方向,可以看成是一個垂直方向的線性佈局,其作用是將APPBarLayout包裹的內容都作為AppBar,支援手勢滑動。 AppBarLayout必須作為Toolbar的父佈局

Android-Spinner列表

在佈局Layout檔案中定義Spinner: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

Layui框正確樣式程式碼

author:咔咔 wechat:fangkangfk   <div class="layui-form-item"> <label class="layui-form-label">型別</label>

OpenLayersol3設定地圖可禁止

let pan = getPan(); pan.setActive(false);//false:當前地圖不可拖動。true:可拖動 function getFun() { let pan;

Layui框寫法

author:咔咔 wechat:fangkangfk <div class="layui-form-item"> <label class="layui-form-label">型別</label> &

Bootstrap選單Dropdown

下拉選單Dropdown不是表單中<select><option value=''></option></select>那種啊,而是導航條中常見的那種。 Bootstrap官方網站對下拉選單Dropdown的解釋很少,即使是他

androidsdk安裝及環境變量配置android stdio的安裝及新建項目

工程 end tps 發現 tool 版本 不知道 php work (前提,安裝配置好jdk) 首先下載一個sdk(http://tools.android-studio.org/index.php/sdk) 我先下的是.exe版本,因為後面括號Recommend,

AndroidGreenDao 3.X 結合Volley以及GsonImageLoader實現資料儲存

關於GreenDao的優點已經不用再說了,關於第三方資料庫框架有很多,相對於Android系統本身的SQLite以及其它第三方而言,我感覺GreenDao使用更方便,體積小、速度更快。網上大多是關於GreenDao之前版本的介紹,關於3.0+新版的介紹不多。Gr

解決 SeekBar點選時的閃動...

SeekBar點選拖動的時候模擬器上不會有任何問題,但是開發板上會出現一直抖動,測試組的人對此非常不爽。解決方法也很簡單,在SeekBar中加了個int historypoint=0;用於記錄上一次點選的範圍。當然你也可以改TouchDelegate.java,裡面可以得到

列表安卓3

pan activity border cin left 資源 pro 內容 1.0 Spinner(下拉列表框) 方法 描述 CharSequence getPrompt () 取得提示文字 void setPrompt(CharSeque

Android一個適用於大圖介面向拽返回的效果

GitHub:DragBottom 適用於檢視大圖的下拉拖拽返回控制元件 共享元素適用於5.0+ 最初看到這個效果是在IOS系統的簡訊App中,後來在IOS微信、騰訊新聞中都發現了類似的效果。 網路上好像也沒有類似的程式碼,所以決定自己動手寫一個

百度地圖API如何使用suggestion--列表方式的搜尋建議

                摘要:  百度地圖上有一個很強大的搜尋建議功能,以下拉列表的方式展示出來。比如,輸入“百度”,下拉列表中就會出現“北京市海淀區百度線上網路技術(北京)有限公司”。這個如何實現呢?讓我們一步一步來學習。---------------------------------------

IOS功能實現之:列表

通過網上資料,自己藉助資料寫的程式碼,這是完全程式碼 //**************************************************************************** @interface DropDown1 : UIView <UITableVi

Android RecyclerViewListView實現單選列表的優雅之路.

一 概述: 這篇文章需求來源還是比較簡單的,但做的優雅仍有值得挖掘的地方。 需求來源:一個類似餓了麼這種電商優惠券的選擇介面: 其實就是 一個普通的列表,實現了單選功能, 效果如圖: (不要怪圖渣了,我擼了四五遍,公司錄出來的GIF就這麼渣

Androiddebug 狀態其簽名檔案 debug.keystore 相關(如何獲得該檔案,其密碼,獲取其sha1MD5等)

Eclipse,Android studio 編譯執行 APP 的時候是生成一個 apk 的,它預設的簽名是 debug.keystore 。 有時候我們需要拿到這個簽名檔案,下面就來說說它的預設路徑: Windows下: C:\Users\<使用者名稱>\.A

CRM01- WEB UI 列表

應用場景:自定義WEB UI 程式下拉列表   首先F2找到頁面對應的“元件及檢視”.實現其對應檢視,上下文節點裡面的get v方法。 具體程式碼如下圖: METHOD get_v_bu.

android 程序守護程序的實現及程序

1,概念 1)守護程序(Daemon) 是一種執行在後臺的特殊程序,它獨立於控制終端並且週期性的執行某些任務。android中守護程序的實現主要由Service來完成。Android繼承了Linux的lowmemorykiller,為了實現程序常駐,需要應用到守護程序。

列表值超過255問題poi生成excel設定單列-解決方案

poi生成2003以下版本excel(.xls字尾檔案) 注意:該版本生成的會存在相容性問題,下述會進行說明。 專案引用poi庫的依賴 (略過) 構造生成excel模板方法// 傳入下拉列表陣列值,構造資訊模板 public static Workbook generateExcel(String