android:onClick詳細
2671 ワード
public void(Viewv)は、関数パラメータマッチングが多態性および関数ポインタ原理に基づいてandroid:onClickのリスナーに登録されることを覚えています.このようにbuttonごとにonClckを使用して独自の測定処理方法を定義したり、共用したりすることができますが、イベントソースの区別についてはそれほど便利ではありません.どのボタンかを論理的に判断したり、
完全な例
main.xml
MainActivity.java
完全な例
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="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"/>
<Button
android:onClick = "xxx"
android:text="ok"
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:onClick = "xxx"
android:text="no"
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
MainActivity.java
package com.sms;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainAcitivy extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void xxx(View v){
// ((Button)v).getText()
Button temp = (Button)v; // instanceof ,, ,
if(temp.getText().toString().trim().equalsIgnoreCase("ok")){
Toast.makeText(this,"ok ", Toast.LENGTH_SHORT).show();
}
if(temp.getText().toString().trim().equalsIgnoreCase("no")){
Toast.makeText(this,"no ", Toast.LENGTH_LONG).show();
}
}
public void xxxx(View v){ // , getText ,
Toast.makeText(this,"xxxx", Toast.LENGTH_SHORT).show();
}
}