除了課堂上介紹的設定的監聽器的方法,還有哪些辦法實現按鈕的響應?

634828354發表於2017-04-12

方法一:指定按鈕功能

  1Activity_main.xml增加兩個按鈕:

  <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/button1"

        android:onClick="onClick"

        android:text="Button1"/>

  <Button

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:id="@+id/button2"

        android:onClick="onClick"

        android:text="Button2"

        android:layout_marginStart="55dp"

        android:layout_alignParentTop="true"

        android:layout_toEndOf="@+id/button1"/>

  2修改string.xml

  <string name="button1">button1</string>

  <string name="button2">button2</string>

  3修改MainActivity.java,增加如下內容

  Toast tst;

  public void onClick(View view){

    switch (view.getId()){

        case R.id.button1:

            tst=Toast.makeText(this,"button1",Toast.LENGTH_SHORT);

            tst.show();

            break;

        case R.id.button2:

            tst=Toast.makeText(this,"button2",Toast.LENGTH_SHORT);

            tst.show();

            break;

        default:break;

    }

  }

  總結:這種方法是在xml檔案中指定按鈕的onclick屬性,這樣點選按鈕就會利用反射的方式呼叫對應Activity中的onClick方法

 

方法二:自定義事件

  1增加onClick()方法

  public void onClick(View view) {

            switch (view.getId()){

                case R.id.button1:

                   tst=Toast.makeText(MainActivity.this,"button1",Toast.LENGTH_SHORT);

                    tst.show();

                    break;

                case R.id.button2:

                   tst=Toast.makeText(MainActivity.this,"button2",Toast.LENGTH_SHORT);

                    tst.show();

                    break;

                default:break;

        }

 

  2onCreate方法中呼叫onClick方法

  btn1=(Button)findViewById(R.id.button1);

  btn2=(Button)findViewById(R.id.button2);

  btn1.setOnClickListener(new clickListener());

  btn2.setOnClickListener(new clickListener());

 

方法三:

  1重寫onClick方法

  public void onClick(View view){

    switch (view.getId()){

        case R.id.button1:

            tst=Toast.makeText(MainActivity.this,"button1",Toast.LENGTH_SHORT);

            tst.show();

            break;

        case R.id.button2:

            tst=Toast.makeText(MainActivity.this,"button2",Toast.LENGTH_SHORT);

            tst.show();

            break;

        default:break;

    }

  }

  2修改onCreate方法

  btn1=(Button)findViewById(R.id.button1);

  btn2=(Button)findViewById(R.id.button2);

  btn1.setOnClickListener(this);

  btn2.setOnClickListener(this);

 

  總結:Activity繼承View.OnClickListener,由Activity實現OnClick(View view)方法,在OnClick(View view)方法中用switch-case對不同id代表的button進行相應的處理

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30046312/viewspace-2137133/,如需轉載,請註明出處,否則將追究法律責任。

相關文章