第三單元學校裡所講控制元件

Annaprincess發表於2024-04-05

第三單元學校裡所講控制元件

1.ImageView圖片

考點1:src和background

background是背景圖片

當設定長寬matchparent

background會鋪滿

而src不會,他會按原圖的比例

<?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"
>
在LinearLayout裡記得要設orientation
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/ic_launcher"/>

</LinearLayout>
<?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"
>
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/ic_launcher"/>
</LinearLayout>
小知識點

<?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: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編輯框

<?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: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"現在這一種寫法被淘汰
應該寫成
android:inputType="numberPassword"

/>
</LinearLayout>

3.RadioButton單選框

這個app功能是:

第一個文字框會顯示當前學歷

第二個文字框會顯示性別

第三個文字框顯示這兩項總和

第一個文字框考的是匿名內部類+介面+事件監聽(關注的是選項變化setOnCheckedChangeListener,不是很重要一般我們只關注結果)

第二個文字框考察的是普通按鈕都有的onClick方法,觸發誰進行誰。

對於第二個文字框那種操作函式必須是public void

第三個文字框綜合框,考察字串拼接:先初始化String pre=“”;String aft ="";字首存學歷,字尾存性別,都先將他們初始化為空。

然後利用一個非常重要的函式isChecked

最後對最後一個文字框setText字串拼接字首+“,“+字尾

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"

/>
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>
package com.example.test;

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>

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/hobby"/>
這是為了最後顯示一共選了哪幾項運動,開始是空白等待填充!
MainActivity.java
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);
            }

        }
    }
}
狀態改變監聽器,只有狀態改變才觸發
ch1.setOnCheckedChangeListener(this);
填上this他會紅色,那麼點住this右鍵先選第二個,再選第一個。

總結

以上題目有個做題思路

(在onCreate方法裡:)

第一步例項化findViewById找到要操縱的控制元件

第二步:設定監聽器set...Listener
(寫監聽方法)
第三步:public void 監聽方法
(進行完第二步系統自動會有第三步只需要我們自定義方法體!)

綜合應用

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裡面定義!

出現位置:頁面最下方

定義方式

Toast.makeText(MainActivity.this, "要顯示的內容", Toast.LENGTH_LONG).show();
Toast.LENGTH_LONG和Toast.LENGTH_SHORT可以二選一(表示顯示時間長度)

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>

相關文章