第三單元學校裡所講控制元件
1.ImageView圖片
考點1:src和background
background是背景圖片
當設定長寬matchparent
background會鋪滿
而src不會,他會按原圖的比例
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
>
在LinearLayout裡記得要設orientation
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/ic_launcher"/>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/ic_launcher"/>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="hello android"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/ic_launcher"
android:scaleType="fitEnd"
/>
</LinearLayout>
2.EditText編輯框
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密碼"/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:password="true"現在這一種寫法被淘汰
/>
</LinearLayout>
3.RadioButton單選框
這個app功能是:
第一個文字框會顯示當前學歷
第二個文字框會顯示性別
第三個文字框顯示這兩項總和
第一個文字框考的是匿名內部類+介面+事件監聽(關注的是選項變化setOnCheckedChangeListener,不是很重要一般我們只關注結果)
第二個文字框考察的是普通按鈕都有的onClick方法,觸發誰進行誰。
對於第二個文字框那種操作函式必須是public void
第三個文字框綜合框,考察字串拼接:先初始化String pre=“”;String aft ="";字首存學歷,字尾存性別,都先將他們初始化為空。
然後利用一個非常重要的函式isChecked
最後對最後一個文字框setText字串拼接字首+“,“+字尾
activity_main.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/pg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Program"/>
<RadioGroup
android:id="@+id/rg1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<RadioButton
android:id="@+id/ud"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Undergraduate"/>
<RadioButton
android:id="@+id/mas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Master"/>
<RadioButton
android:id="@+id/phd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="PhD"/>
</RadioGroup>
<TextView
android:id="@+id/gen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Gender"/>
<RadioGroup
android:id="@+id/rg2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<RadioButton
android:id="@+id/male"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Male"
android:onClick="maleclick"
/>
<RadioButton
android:id="@+id/female"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Female"
android:onClick="femaleclick"
/>
MainActivity.java
</RadioGroup>
<TextView
android:id="@+id/sum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TBD"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK"
android:onClick="sumclick"
/>
</LinearLayout>
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
TextView gen;
TextView pg;
RadioButton ud,mas,phd,male,female;
RadioGroup rg1,rg2;
TextView sum;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
gen=findViewById(R.id.gen);
pg=findViewById(R.id.pg);
ud=findViewById(R.id.ud);
mas=findViewById(R.id.mas);
phd=findViewById(R.id.phd);
male=findViewById(R.id.male);
female=findViewById(R.id.female);
rg1=findViewById(R.id.rg1);
rg2=findViewById(R.id.rg2);
sum=findViewById(R.id.sum);
//匿名內部類+介面+監聽
rg1.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId==R.id.ud){
pg.setText("Undergraduate");
}
else if(checkedId==R.id.mas){
pg.setText("Master");
}
else if(checkedId==R.id.phd){
pg.setText("PhD");
}
}
});
}
public void maleclick(View v){
gen.setText("Male");
}
public void femaleclick(View v){
gen.setText("FeMale");
}
public void sumclick(View v){
String pre="";
String aft="";
if(ud.isChecked()){
pre="undergraduate";
}
else if(mas.isChecked()){
pre="Master";
}
else if(phd.isChecked()){
pre="PhD";
}
if(male.isChecked()){
aft="Male";
}
else if(female.isChecked()){
aft="Female";
}
sum.setText(pre+","+aft);
}
}
CheckBox 核取方塊
activity_main.xml<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="請選擇愛好:"
android:textColor="#FF8800"
/>
<CheckBox
android:id="@+id/ch1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="羽毛球"/>
<CheckBox
android:id="@+id/ch2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="乒乓球"/>
<CheckBox
android:id="@+id/ch3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="足球"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="您選擇的愛好是:"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/hobby"/>
</LinearLayout>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/hobby"/>
package com.example.checkbox1;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements CompoundButton.OnCheckedChangeListener {
CheckBox ch1,ch2,ch3;
TextView hobby;//最終顯示所選運動
String hobbies;//存放所選運動的內容
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//第一步:例項化,找到這些控制元件
ch1=findViewById(R.id.ch1);
ch2=findViewById(R.id.ch2);
ch3=findViewById(R.id.ch3);
hobby=findViewById(R.id.hobby);
hobbies=new String();
//第二步:設定監聽器
ch1.setOnCheckedChangeListener(this);
ch2.setOnCheckedChangeListener(this);
ch3.setOnCheckedChangeListener(this);
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String name=buttonView.getText().toString();//獲取當前狀態改變控制元件的名稱
if(isChecked){//選中
if(!hobbies.contains(name)){//但是現在所存選中內容不包含這個控制元件
hobbies+=name;
hobby.setText(hobbies);
}
}
else{//未選中
if(hobbies.contains(name)){//未選中,但是選中內容裡面有這個控制元件,那就要刪除他用replace
hobbies=hobbies.replace(name,"");
hobby.setText(hobbies);
}
}
}
}
總結
以上題目有個做題思路
(在onCreate方法裡:)
第一步例項化findViewById找到要操縱的控制元件
綜合應用
main.java
package com.example.myapplication111;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity implements RadioGroup.OnCheckedChangeListener, CompoundButton.OnCheckedChangeListener {
TextView pg,gen,course,sum;
RadioButton ud,mas,phd,male,female;
CheckBox ch1,ch2,ch3;
RadioGroup rg1,rg2;
String c;
String a;
String b;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pg=findViewById(R.id.pg);
gen=findViewById(R.id.gen);
course=findViewById(R.id.course);
sum=findViewById(R.id.sum);
ud=findViewById(R.id.ud);
mas=findViewById(R.id.mas);
phd=findViewById(R.id.phd);
male=findViewById(R.id.male);
female=findViewById(R.id.female);
ch1=findViewById(R.id.ch1);
ch2=findViewById(R.id.ch2);
ch3=findViewById(R.id.ch3);
rg1=findViewById(R.id.rg1);
rg2=findViewById(R.id.rg2);
rg1.setOnCheckedChangeListener(this);
ch1.setOnCheckedChangeListener(this);
ch2.setOnCheckedChangeListener(this);
ch3.setOnCheckedChangeListener(this);
c=new String();
a=new String();
b=new String();
}
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
if(checkedId==R.id.ud) {
pg.setText("undergraduate");
a="undergraduste";
}
else if(checkedId==R.id.mas) {
pg.setText("master");
a="master";
}
else if(checkedId==R.id.phd){pg.setText("phd");
a="phd";}
}
public void maleclick(View v){
gen.setText("male");
b="male";
}
public void femaleclick(View v){
gen.setText("female");
b="female";
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
String n=buttonView.getText().toString();
if(isChecked){//選中
if(!c.contains(n)){
c+=n;
course.setText(c);
}
}
else{//沒選中
if(c.contains(n)){
c=c.replace(n,"");
course.setText(c);
}
}
}
public void sumclick(View v){
sum.setText(a+","+b+","+c);
}
}
Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
>
<TextView
android:id="@+id/pg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Program"/>
<RadioGroup
android:id="@+id/rg1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<RadioButton
android:id="@+id/ud"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Undergraduate"/>
<RadioButton
android:id="@+id/mas"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Master"/>
<RadioButton
android:id="@+id/phd"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="PhD"/>
</RadioGroup>
<TextView
android:id="@+id/gen"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Gender"/>
<RadioGroup
android:id="@+id/rg2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<RadioButton
android:id="@+id/male"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Male"
android:onClick="maleclick"
/>
<RadioButton
android:id="@+id/female"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Female"
android:onClick="femaleclick"
/>
</RadioGroup>
<TextView
android:id="@+id/course"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Course"
/>
<CheckBox
android:id="@+id/ch1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Java"/>
<CheckBox
android:id="@+id/ch2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Data Structure"
/>
<CheckBox
android:id="@+id/ch3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="ComputerNetwork"/>
<TextView
android:id="@+id/sum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TBD"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK"
android:onClick="sumclick"
/>
</LinearLayout>
總結:
1.Button,RadioButton,CheckBox都有onclick屬性這種屬性在xml只用寫 android:onClick="方法名"就能進行點選事件
在java檔案裡面寫方法public void 方法名(View v){
方法體}
2.監聽器
(1)findViewById
(2)
setOnCkeckChangedListener
(3)public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
Toast 訊息提示框
動態,在java檔案裡定義,不用在xml裡面定義!
出現位置:頁面最下方
定義方式
activity_main.xml
<?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:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="姓名"/>
<EditText
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="密碼"/>
<EditText
android:id="@+id/ps"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberPassword"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提交"
android:onClick="send"
/>
</LinearLayout>
mainactivity.java
package com.example.toa;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText name,ps;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name=findViewById(R.id.name);
ps=findViewById(R.id.ps);
}
public void send(View v){
if(name.getText().toString().equals("wmy") && ps.getText().toString().equals("123456")){
Toast.makeText(MainActivity.this, "success", Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(MainActivity.this, "unsuccess", Toast.LENGTH_LONG).show();
}
}
}
顯示效果:
這個專案是:只有當輸入姓名是wmy且密碼是123456時Toast輸出success否則輸出unsuccess
捲軸
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="helloworld"
android:textSize="20sp"
/>
</LinearLayout>
</ScrollView>