日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

安卓天天练练(五)CompoundButton

發布時間:2024/8/1 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 安卓天天练练(五)CompoundButton 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ToggleButton?讓我想起了從前jQuery還沒有取消toggle方法時是怎么偷懶的。。

注意:

  • 如果LinearLayout,與RelativeLayout不同,必須有orientation。用可視化頂部的橫著隔開或者豎著隔開的方形按鈕也可以選擇,例如android:orientation="vertical"
  • 三目運算符前面和js一樣,那個state是不需要額外帶括號的
  • 按鈕右鍵點上去有Edit TextOff,TextOn
  • 文字右鍵點上去的Edit Text可以新建string,填好String和R.string.之后自動生成string.xml到/values
  • 圖片右鍵點上去有ScaleType可供選擇
  • 如果AVD啟動黑屏,又沒有報錯,嘗試刪除舊的AVD新建后start再run as
package com.example.android_8_1;import android.app.Activity; import android.os.Bundle; import android.widget.CompoundButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.ImageView; import android.widget.ToggleButton;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);ToggleButton tg = (ToggleButton) findViewById(R.id.toggleButton1);tg.setOnCheckedChangeListener(new OnCheckedChangeListener() {// imported from android.widget.CompoundButton @Overridepublic void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {// TODO Auto-generated method stub setBulbState(isChecked);}});}public void setBulbState(boolean state) {ImageView iv = (ImageView) findViewById(R.id.imageView1);iv.setImageResource(state? R.drawable.btn : R.drawable.btnhover);ToggleButton tg = (ToggleButton) findViewById(R.id.toggleButton1);tg.setChecked(state);}}

XML很簡單

<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"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.android_8_1.MainActivity" ><ImageViewandroid:id="@+id/imageView1"android:layout_width="match_parent"android:layout_height="wrap_content"android:scaleType="fitXY"android:src="@drawable/btn" /><ToggleButtonandroid:id="@+id/toggleButton1"android:layout_width="80dp"android:layout_height="40dp"android:layout_gravity="center_horizontal"android:text="ToggleButton"android:textOff="關燈"android:textOn="開燈" /></LinearLayout>

安卓自帶的機制很實用,此例結束。

另外,單選框可以用<RadioGroup></RadioGroup>包起來形成一組,實現單選排斥。

改成一組連動式CompoundButton

package com.example.android_8_1;import com.example.android_8_1.R.id;import android.app.Activity; import android.os.Bundle; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.RadioButton; import android.widget.CompoundButton.OnCheckedChangeListener; import android.widget.ImageView; import android.widget.ToggleButton;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);ToggleButton tg = (ToggleButton) findViewById(R.id.toggleButton1);tg.setOnCheckedChangeListener(new OnCheckedChangeListener() {// imported from android.widget.CompoundButton @Overridepublic void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {// TODO Auto-generated method stub setBulbState(isChecked);}});CheckBox cb = (CheckBox) findViewById(R.id.checkBox1);cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {// TODO Auto-generated method stub setBulbState(isChecked);}});RadioButton rb = (RadioButton) findViewById(id.radioButton2);rb.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(CompoundButton buttonView,boolean isChecked) {// TODO Auto-generated method stub setBulbState(isChecked);}});}public void setBulbState(boolean state) {ImageView iv = (ImageView) findViewById(R.id.imageView1);iv.setImageResource(state ? R.drawable.btn : R.drawable.btnhover);ToggleButton tg = (ToggleButton) findViewById(R.id.toggleButton1);CheckBox cb = (CheckBox) findViewById(R.id.checkBox1);tg.setText(state ? R.string.onn : R.string.offn);cb.setText(state ? R.string.offn : R.string.onn);tg.setChecked(state);cb.setChecked(state);RadioButton rb = (RadioButton) findViewById(R.id.radioButton2);rb.setChecked(state);rb = (RadioButton) findViewById(R.id.radioButton1);rb.setChecked(!state);}}

XML不變。需要注意的是,如果邏輯上貌似通順但是出現checkbox點下去沒反應,一定是黑白顛倒弄反鳥!

比如文字設為onn活著offn,checked(!state)在對radioButton1還是radioButton2。

轉載于:https://www.cnblogs.com/haimingpro/p/4671239.html

總結

以上是生活随笔為你收集整理的安卓天天练练(五)CompoundButton的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。