2009/12/14

Android Button 按鈕與其 Trigger 觸發事件

Android 的 Button 按鈕, 與其按下之後的觸發事件,

可以參考下面的範例 (兩個欄位相加的結果顯示) :

 layout XML 部分內容
<EditText
android:id="@+id/fromNumber"
android:layout_width="149px"
android:layout_height="wrap_content"
android:text=""
android:textSize="18sp"
android:layout_x="10px"
android:layout_y="32px"
/>
<TextView
android:id="@+id/widgetAdd"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="+"
android:textSize="20sp"
android:layout_x="10px"
android:layout_y="82px"
/>
<EditText
android:id="@+id/toNumber"
android:layout_width="150px"
android:layout_height="wrap_content"
android:text=""
android:textSize="18sp"
android:layout_x="10px"
android:layout_y="112px"
/>
<Button
android:id="@+id/equals"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="="
android:textSize="20sp"
android:layout_x="10px"
android:layout_y="172px"
/>
<TextView
android:id="@+id/totalValue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="30sp"
android:textColor="#ffffff00"
android:layout_x="10px"
android:layout_y="232px"
/>

 Java 程式碼
public class helloAndroid extends  Activity {

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

// 要使用 findViewById, 一定要使用 layout / *.xml 做為使用者介面
setContentView( R.layout.main );

// 取得 Layout 物件
EditText fromNumber = (EditText)this.findViewById( R.id.fromNumber );
EditText toNumber = (EditText)this.findViewById( R.id.toNumber );
Button equals = (Button)this.findViewById( R.id.equals );
TextView totalValue = (TextView)this.findViewById( R.id.totalValue );

// Button 新增 onClick 觸發事件
equals.setOnClickListener( new OnClickListener(){
public void onClick(View v) {
try {
int fromNum = Integer.parseInt(fromNumber.getText().toString());
int toNum = Integer.parseInt(toNumber.getText().toString());

totalValue.setText( fromNum + toNum + "" );
}catch( Exception e ) {
totalValue.setText("請輸入正確的數字型態 !! ");
}
}
});
}
}

範例結果 :