Android筆記——Button點擊事件幾種寫法,androidbutton

來源:互聯網
上載者:User

Android筆記——Button點擊事件幾種寫法,androidbutton

Button點擊事件:大概可以分為以下幾種:

 

首先我們簡單地定義一個帶Button的xml布局檔案

  activity_main.xml:

<Button        android:id="@+id/bt1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="點擊事件" />

 

然後再寫Java代碼

  MainActivity.java:

 

1.匿名內部類

  

@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                bt = (Button) findViewById(R.id.bt1);        //1.匿名內部類        bt.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View v) {                // TODO Auto-generated method stub                Log.i("匿名內部類", "點擊事件");            }        });
}

 

2.定義內部類,實現OnClickListener介面

  

public class MainActivity extends Activity{    private Button bt;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                bt = (Button) findViewById(R.id.bt);        bt.setOnClickListener(new MyListener());    }        //定義內部類,實現OnClickListene介面    class MyListener implements OnClickListener{        @Override        public void onClick(View v) {            // TODO Auto-generated method stub            Log.i("定義內部類,實現OnClickListene介面", "點擊事件");        }    }
}

 

3.定義的構造方法

  

public class MainActivity extends Activity{    private Button bt;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                bt = (Button) findViewById(R.id.bt);        myListener();    }        //定義構造方法        private void myListener() {        // TODO Auto-generated method stub        bt.setOnClickListener(new OnClickListener() {                        @Override            public void onClick(View v) {                // TODO Auto-generated method stub                Log.i("定義構造方法", "點擊事件");            }        });    }}

 

4.用Activity實現OnClickListener介面

  

public class MainActivity extends Activity implements OnClickListener {    private Button bt;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                bt = (Button) findViewById(R.id.bt);        bt.setOnClickListener(this);    }      //用Activity實現OnClickListener介面    @Override    public void onClick(View v) {        // TODO Auto-generated method stub        Log.i("用Activity實現OnClickListener介面", "點擊事件");        }    }

 

5.指定Button的onClick的屬性:

  先在layout檔案中指定onClick屬性,然後到Activity中實現這個onButtonClick方法

布局檔案:

    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="click"        android:text="點擊事件" />

  Java代碼:

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);            }    //5指定onClick屬性方式    public void click(View v) {        // TODO Auto-generated method stub        Log.i("指定onClick屬性方式","點擊事件");     }}

 

 

另外,多個按鈕點擊的話,也可以指定onClick屬性方式,擷取其資源id。通過其資源id,可以判斷使用者點擊了哪個按鈕了。

  

布局檔案:

    <Button        android:id="@+id/bt1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="click"        android:text="點擊事件1" />           <Button        android:id="@+id/bt2"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="click"        android:text="點擊事件2" />            <Button        android:id="@+id/bt3"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="click"        android:text="點擊事件3" />/>        <Button        android:id="@+id/bt4"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:onClick="click"        android:text="點擊事件4" />

 Java代碼:

public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);            }    //指定onClick屬性方式    //傳人的View對象,就是使用者按下的那個按鈕對象    public void click(View v) {        // TODO Auto-generated method stub                //擷取組件的資源id        int id = v.getId();        switch (id) {        case R.id.bt1:            Log.i("指定onClick屬性方式","bt1點擊事件");             break;        case R.id.bt2:            Log.i("指定onClick屬性方式","bt2點擊事件");             break;        case R.id.bt3:            Log.i("指定onClick屬性方式","bt3點擊事件");             break;        case R.id.bt4:            Log.i("指定onClick屬性方式","bt4點擊事件");             break;        default:            break;        }            }}

 

效果

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.