AndroidのButtonのいくつかのクリックの書き方

8952 ワード

私たちはButtonを使うとき、基本的にクリックイベントを設定して、特定の操作を処理します.では、Buttonのクリックイベントをどのように書きますか?
Buttonのいくつかのクリック
1つのButtonは1つの傍受に対応する
 Button button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            }
        });

もし私たちがもっとButtonを持っていたら、私たちはこのように書き続けたら終わりです.もちろん、この方法はページのボタンが少ないときにこのように書くのに適しています.もしあなたのページに十数個のボタンがあれば、このように書くと頭が大きくなります.
すべてのbuttonはリスニングに対応し、OnClickListenerリスニングを書き換えます.
public class TestActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        initViews();
    }

    private void initViews() {
        Button button1 = (Button) findViewById(R.id.button1);
        Button button2 = (Button) findViewById(R.id.button2);
        button1.setOnClickListener(myListener);
        button2.setOnClickListener(myListener);
    }
    View.OnClickListener myListener = new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            switch (view.getId()){
                case R.id.button1:
                    Toast.makeText(TestActivity.this, "    1", Toast.LENGTH_SHORT).show();
                    break;
                case R.id.button2:
                    Toast.makeText(TestActivity.this, "    2", Toast.LENGTH_SHORT).show();
                    break;
                default:
                    break;
            }
        }
    };

}

すべてのbuttonは1つのリスニングに対応し、OnClickListenerインタフェースを実現する.
public class TestActivity extends Activity implements View.OnClickListener{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        initViews();
    }

    private void initViews() {
        Button button1 = (Button) findViewById(R.id.button1);
        Button button2 = (Button) findViewById(R.id.button2);
        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()){
            case R.id.button1:
                Toast.makeText(TestActivity.this, "    1", Toast.LENGTH_SHORT).show();
                break;
            case R.id.button2:
                Toast.makeText(TestActivity.this, "    2", Toast.LENGTH_SHORT).show();
                break;
            default:
                break;
        }
    }
}
                 ,          ,          。

ButtonのXMLコードにandroid:onClickプロパティ実装を追加
XML   :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

   <Button
       android:id="@+id/button1"
       android:layout_width="match_parent"
       android:text="button1"
       android:onClick="myClick"
       android:layout_height="40dp" />
   <Button
       android:id="@+id/button2"
       android:layout_width="match_parent"
       android:text="button2"
       android:onClick="myClick"
       android:layout_height="40dp" />

LinearLayout>
java    :
public class TestActivity extends Activity{
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

    }

    /**
     *  XML        , java   ,   findViewById,   setOnClickListener,  
     *     xml        ,  ID         。
     *            public    ,     。
     * */
    public void myClick(View view){
        switch (view.getId()){
            case R.id.button1:
                Toast.makeText(TestActivity.this, "    1", Toast.LENGTH_SHORT).show();
                break;
            case R.id.button2:
                Toast.makeText(TestActivity.this, "    2", Toast.LENGTH_SHORT).show();
                break;
            default:
                break;
        }
    }

}

この方法はあなたのコードをはっきりさせ、コードの量を減らすことができますが、柔軟ではありません.