「Android誌」 Button事件處理、設定監聽事件
在我們寫AndroidApp時、Button一定會常常用到、現在讓我們來試試Button的監聽事件、已下有幾個方法可以達到監聽、記住Android規定只要有設監聽(setOnClickListener)、就必需一定要有點擊事件(onClick)。
方法一、直接將Button設為監聽事件
方法二、將整個class設為同一事件
方法一、直接將Button設為監聽事件
public class MainActivity extends AppCompatActivity{
//宣告一個TextView名為txv
TextView txv;
//宣告Button
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//設定目前的View為activity_main
setContentView(R.layout.activity_main);
txv = (TextView) findViewById(R.id.textView);
//設定Button
btn1 = (Button) findViewById(R.id.btn1);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
txv.setText("1");
}
});
}
}
但如果你同時有非常多Button都必需設監聽、那不就每個Button都必需設監聽然後在設定點擊事件(onClick)、假如你這樣做那麼在後面程式上的修改及閱讀上都會非常困難、解決的方法可以將整個class都設為同一點擊事件、在利用switch來選擇Button的id。方法二、將整個class設為同一事件
public class MainActivity extends AppCompatActivity {
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
//宣告一個TextView名為txv
TextView txv;
//宣告多個Button
Button btn1, btn2, btn3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//設定目前的View為activity_main
setContentView(R.layout.activity_main);
txv = (TextView)findViewById(R.id.textView);
//設定Button
btn1 = (Button)findViewById(R.id.btn1);
btn2 = (Button)findViewById(R.id.btn2);
btn3 = (Button)findViewById(R.id.btn3);
//還是必需每個Button都設監聽
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
}
//利用swtich來選擇點擊事件
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn1:
txv.setText("1");
break;
case R.id.btn2:
txv.setText("2");
break;
case R.id.btn3:
txv.setText("3");
}
}
}
留言
張貼留言