Android——基本组件-2
目錄
- RadioButton(單選框)
- 1.獲取選中的值
- 2.運(yùn)用
- 3.效果展示
- CheckBox(復(fù)選框)
- 1.布局
- 自定義點(diǎn)擊效果
- 修改文字與選擇框的距離
- 2.MainActivity.java文件
- 3.效果展示
RadioButton(單選框)
RadioButton(單選按鈕),就是之能夠選中一個(gè),所以我們需要把RadioButton放到RadioGroup按鈕組中,從而實(shí)現(xiàn)單選功能。我們可以為外層RadioButton設(shè)置orientation屬性然后設(shè)置RadioButton的排列方式,是豎直還是水平。
RadioButton是繼承LinearLayout
1.獲取選中的值
第一種:是為RadioButton設(shè)置一個(gè)事件監(jiān)聽器:setOnCheckedChangeListener()
ps:一定要切記,要為每個(gè)RadioButton添加一個(gè)id,不然單選功能不會生效!
RadioGroup rbtn=(RadioGroup) findViewById(R.id.group);//第一種獲得單選按鈕值的方法為radioGroup設(shè)置一個(gè)監(jiān)聽器:setOnCheckedChangeListener()rbtn.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {RadioButton radioButton=(RadioButton) findViewById(checkedId);Toast.makeText(getApplicationContext(),"你選了:"+radioButton.getText(),Toast.LENGTH_SHORT).show();}});第二種:通過點(diǎn)擊其他按鈕獲取選中的單選按鈕的值
Button btn=findViewById(R.id.btn); RadioGroup rbtn=(RadioGroup) findViewById(R.id.group); //第二種為RadioGroup設(shè)置一個(gè)監(jiān)聽器:setOnClickListener()btn.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {//getChildCount()獲得按鈕組中的單選按鈕的數(shù)目for(int i=0;i<rbtn.getChildCount();i++){//getChildAt()根據(jù)索引值獲取我們的單選按鈕RadioButton rd=(RadioButton) rbtn.getChildAt(i);//isChecked()判斷按鈕是否被選中if(rd.isChecked()){Toast.makeText(getApplicationContext(),"你選擇的是:"+rd.getText(),Toast.LENGTH_SHORT).show();}}}});2.運(yùn)用
1.布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><RadioGroupandroid:id="@+id/group"android:layout_width="wrap_content"android:layout_height="wrap_content"><RadioButtonandroid:id="@+id/man"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"android:checked="true"android:textSize="30sp"/><RadioButtonandroid:id="@+id/woman"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女"android:textSize="30sp"/></RadioGroup><Buttonandroid:id="@+id/btn"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="提交"android:textSize="30dp"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:backgroundTint="#8BC34A"/> </LinearLayout>2.MainActivity.java文件
package com.example.day_17;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btn=findViewById(R.id.btn);//提交按鈕RadioGroup rbtn=(RadioGroup) findViewById(R.id.group);//第一種獲得單選按鈕值的方法為radioGroup設(shè)置一個(gè)監(jiān)聽器:setOnCheckedChangeListener()rbtn.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener(){@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {RadioButton radioButton=(RadioButton) findViewById(checkedId);//checkedId獲取被選中的單選框的idToast.makeText(getApplicationContext(),"你選了:"+radioButton.getText(),Toast.LENGTH_SHORT).show();}});//第二種為RadioGroup設(shè)置一個(gè)監(jiān)聽器:setOnClickListener()btn.setOnClickListener(new View.OnClickListener(){@Overridepublic void onClick(View v) {//getChildCount()獲得按鈕組中的單選按鈕的數(shù)目for(int i=0;i<rbtn.getChildCount();i++){//getChildAt()根據(jù)索引值獲取我們的單選按鈕RadioButton rd=(RadioButton) rbtn.getChildAt(i);//isChecked()判斷按鈕是否被選中if(rd.isChecked()){Toast.makeText(getApplicationContext(),"你選擇的是:"+rd.getText(),Toast.LENGTH_SHORT).show();}}}});} }3.效果展示
CheckBox(復(fù)選框)
既可以同時(shí)選中多個(gè)選項(xiàng)。
1.布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".ChexBox_MainActivity"><CheckBoxandroid:id="@+id/first"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Java"android:textSize="30sp"/><CheckBoxandroid:id="@+id/second"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Android"android:background="@null"android:paddingLeft="40dp"android:textSize="30sp"/><CheckBoxandroid:id="@+id/three"android:layout_width="wrap_content"android:layout_height="wrap_content"android:button="@drawable/check_btn"android:text="C++"android:textSize="30sp" /><Buttonandroid:id="@+id/button1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:text="提交"android:textSize="30sp"android:backgroundTint="#8BC34A"/></LinearLayout>自定義點(diǎn)擊效果
1.創(chuàng)建check_btn.xml文件
2.編輯check_btn.xml文件
ps:drawable在放入圖片的時(shí)候,需要將圖片保存為xxxhdpi,這樣圖片展示出來的就不會太大。具體為什么要保存為xxxhdpi,大家可以試試類型的,會發(fā)現(xiàn)圖片顯示出來的很大。
可以理解一下android drawable-hdpi xhdpi xxhdpi xxxhdpi 之間的差異
3.自定義樣式的使用
方法一:android:button屬性設(shè)置為上述的selector
android:button="@drawable/check_btn"
方法二:在style中定義一個(gè)屬性,然后通過android:style屬性設(shè)置,先往style添加下述代碼:
< style
name=“MyCheckBox”
parent="@android:style/Widget.CompoundButton.CheckBox">
< item name=“android:button”>
@drawable/check_btn
< /item>
< /style>
然后在布局那里
style="@style/MyCheckBox"
ps:如果沒有style.xml文件,那就自己新建一個(gè)。
修改文字與選擇框的距離
android:background="@null"
android:paddingLeft=“40dp”
2.MainActivity.java文件
package com.example.day_17;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.Toast;public class ChexBox_MainActivity extends AppCompatActivity implements View.OnClickListener, CompoundButton.OnCheckedChangeListener {private CheckBox checkBox1;private CheckBox checkBox2;private CheckBox checkBox3;private Button button;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_chex_box__main);checkBox1=findViewById(R.id.first);checkBox2=findViewById(R.id.second);checkBox3=findViewById(R.id.three);button=findViewById(R.id.button1);checkBox1.setOnCheckedChangeListener(this);checkBox2.setOnCheckedChangeListener(this);checkBox3.setOnCheckedChangeListener(this);button.setOnClickListener(this);}@Overridepublic void onClick(View v) {String choose="";if(checkBox1.isChecked()){choose+=checkBox1.getText().toString()+"";}if(checkBox2.isChecked()){choose+=checkBox2.getText().toString()+"";}if(checkBox3.isChecked()){choose+=checkBox3.getText().toString()+"";}Toast.makeText(this,choose,Toast.LENGTH_SHORT).show();}@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {String s=buttonView.getText().toString();if(buttonView.isChecked()){Toast.makeText(this,"你選了:"+s,Toast.LENGTH_SHORT).show();}} }3.效果展示
總結(jié)
以上是生活随笔為你收集整理的Android——基本组件-2的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 身为一名合格root管理员的基本防范措施
- 下一篇: 蓝牙耳机哪个品牌性价比高?高性价比真无线