今天學習了安卓開發的點擊事件,下面我來敘述一下實現點擊時間得基本方法:
第一種:在要被點擊得控件中加onclick屬性
格式:android:onClick="方法名" 例如andoroid:onClick="oneClick"
接下來在對應這個布局得activity中寫一個方法,格式為:
public void 方法名(View view ){
方法得執行代碼;
}
例如:
public void oneOnclick(View view){
Log.d(TAG,"...1");
if(view instanceof TextView){
String a = ((TextView)view).getText().toString();
Log.d(TAG,"name =="+ a);//打印每個鍵所包含得文本內同容
}
}
第一種實例(計算器)代碼:
activity代碼:
package com.example.text2; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.calculatorlayout); } public void oneOnclick(View view){ Log.d(TAG,"...1"); if(view instanceof TextView){ String a = ((TextView)view).getText().toString(); Log.d(TAG,"name =="+ a);//打印每個鍵所包含得文本內同容 } } }
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"> <LinearLayout android:layout_width="match_parent" android:layout_height="80dp" android:layout_gravity="center" android:orientation="horizontal" > <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="C" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="+/-" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="%" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="÷" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector_oring" android:layout_weight="1"></TextView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="80dp" android:layout_gravity="center" android:orientation="horizontal" > <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="1" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="2" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="3" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="÷" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector_oring" android:layout_weight="1"></TextView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="80dp" android:layout_gravity="center" android:orientation="horizontal" > <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="4" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="5" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="6" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="x" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector_oring" android:layout_weight="1"></TextView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="80dp" android:layout_gravity="center" android:orientation="horizontal" > <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="7" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="8" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="9" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="-" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector_oring" android:layout_weight="1"></TextView> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="80dp" android:layout_gravity="center" android:orientation="horizontal" > <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="0" android:gravity="center" android:textSize="30sp" android:layout_weight="2" android:background="@drawable/selector" ></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="." android:gravity="center" android:textSize="30sp" android:background="@drawable/selector" android:layout_weight="1"></TextView> <TextView android:onClick="oneOnclick" android:layout_width="0dp" android:layout_height="match_parent" android:text="=" android:gravity="center" android:textSize="30sp" android:background="@drawable/selector_oring" android:layout_weight="1"></TextView> </LinearLayout> </LinearLayout>
白色外邊框代碼:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#ffffff"/> <stroke android:color="#333333" android:width="1dp"/> </shape>
點擊之后變色代碼:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#999999"/> <stroke android:color="#333333" android:width="1dp"/> </shape>
橙色外邊框代碼:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#e47f24"/> <stroke android:color="#333333" android:width="1dp"/> </shape>
點擊之后變色代碼:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="#b55f1c"/> <stroke android:color="#333333" android:width="1dp"/> </shape>
白色部分選擇事件代碼:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/shape_rectangle_grey" android:state_pressed="true"/>
<item android:drawable="@drawable/shape_rectangle"/>
</selector>
橙色部分選擇事件代碼:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@drawable/shape_rectangle_oring_gery"/>
<item android:drawable="@drawable/shape_rectangle_oring"/>
</selector>
安卓手機端開發截圖:

點擊控件,顯示台截圖:

第二種:通過id聲明來找到控件並對其進行設置點擊事件
第一步:給對應的控件設置id
第二步:找到控件
第三步:設置點擊事件
package com.example.text2; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private static final String TAG = "MainActivity"; private TextView cancel; private TextView plus_red; private TextView divisible; private TextView chu; private TextView one; private TextView two; private TextView three; private TextView plus; private TextView four; private TextView five; private TextView six; private TextView multiply; private TextView senven; private TextView eight; private TextView nine; private TextView cut; private TextView zero; private TextView spot; private TextView equal; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.calculatorlayout_byid); initview(); //設置點擊事件 initClick(); } private void initview() { cancel = this.findViewById(R.id.cancel); plus_red = this.findViewById(R.id.plus_red); divisible = this.findViewById(R.id.divisible); chu = this.findViewById(R.id.chu); one = this.findViewById(R.id.one); two = this.findViewById(R.id.two); three = this.findViewById(R.id.three); plus = this.findViewById(R.id.plus); four = this.findViewById(R.id.four); five = this.findViewById(R.id.five); six = this.findViewById(R.id.six); multiply = this.findViewById(R.id.multiply); senven = this.findViewById(R.id.senven); eight = this.findViewById(R.id.eight); nine = this.findViewById(R.id.nine); cut = this.findViewById(R.id.cut); zero = this.findViewById(R.id.zero); spot = this.findViewById(R.id.spot); equal = this.findViewById(R.id.equal); } /* 設置點擊事件 */ public void initClick(){ //第一種設置方式 cancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG,"點擊鍵值為"+ ((TextView)v).getText().toString()); } }); divisible.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG,"點擊鍵值為"+ ((TextView)v).getText().toString()); } }); chu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG,"點擊鍵值為"+ ((TextView)v).getText().toString()); } }); plus.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG,"點擊鍵值為"+ ((TextView)v).getText().toString()); } }); four.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG,"點擊鍵值為"+ ((TextView)v).getText().toString()); } }); five.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG,"點擊鍵值為"+ ((TextView)v).getText().toString()); } }); six.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Log.d(TAG,"點擊鍵值為"+ ((TextView)v).getText().toString()); } }); //第二中設置方法 plus_red.setOnClickListener(this); one.setOnClickListener(this); two.setOnClickListener(this); three.setOnClickListener(this); multiply.setOnClickListener(this); senven.setOnClickListener(this); eight.setOnClickListener(this); nine.setOnClickListener(this); cut.setOnClickListener(this); zero.setOnClickListener(this); spot.setOnClickListener(this); equal.setOnClickListener(this); } @Override public void onClick(View v) { Log.d(TAG,"點擊鍵值為"+ ((TextView)v).getText().toString()); } }
安卓開發截圖和第一種方法一樣就不截圖了,控制台截圖(為方便區分我輸出值為中文):

這是今天所學,明天繼續加油,豐富自己的知識儲備!
