「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"); } } }
留言
張貼留言