標籤:android style blog http color os
今天學的是對開關的監聽,兩種開關ToggleButton和switch
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"><ToggleButton android:id="@+id/togglebutton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="縱向排列" android:textOff="橫向排列" android:checked="true" /><Switch android:id="@+id/switcher" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textOn="縱向排列" android:textOff="橫向排列" android:checked="true"/>
<LinearLayout android:id="@+id/test" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測試按鈕一" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測試按鈕二" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="測試按鈕三" /> </LinearLayout></LinearLayout>
通過開關控制三個按鈕的是水平還是豎直布局,所以需要將三個按鈕包裹起來,整體要用線性布局。有一個不懂的是為什麼要用android:checked="true"?就是是否要被選中的意思。。。
package com.example.togglebutton;import android.app.Activity;import android.os.Bundle;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.LinearLayout;import android.widget.Switch;import android.widget.ToggleButton;public class MainActivity extends Activity { ToggleButton togglebutton; Switch switcher; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); togglebutton=(ToggleButton) findViewById(R.id.togglebutton); switcher=(Switch) findViewById(R.id.switcher); final LinearLayout test=(LinearLayout) findViewById(R.id.test); OnCheckedChangeListener listener=new OnCheckedChangeListener(){ @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // TODO Auto-generated method stub if(isChecked){ test.setOrientation(1);//豎直 }else{ test.setOrientation(0);//水平 } } }; togglebutton.setOnCheckedChangeListener(listener); switcher.setOnCheckedChangeListener(listener); }}
這個裡面讓我體會到一個重點就是資料域,和普通變數。。。
為什麼要將togglebutton和swithcer作為資料域呢?為什麼test這個不用作為資料域裡的內容呢?
還有一個就是為什麼test這個要用final呢?