Android Button 單擊事件

來源:互聯網
上載者:User

方法一:在XML檔案中指定 單擊事件函數

<Button
            android:id="@+id/button1"
            android:layout_width="120dip"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_below="@+id/textView1"
            android:layout_marginTop="59dp"
            android:onClick="onclicklistener"
            android:text="@string/mybuttonstr" />

然後在代碼中實現這個函數。注意,函數需要public 要不會異常。

 public void onclicklistener(View tager)
    {
          TextView textView1 =(TextView)findViewById(R.id.textView1);
    textView1.setText("西安.王磊");
    }

 

方法二:

在activity 的onCreate 中 找到button,然後給它賦上事件監聽器。這個方式非常普遍。

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button but=(Button)this.findViewById(id.button1);
        
        
        but.setOnClickListener(new OnClickListener() {
            
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Log.v("MyTag", "onClick");
            }
        });
    }

 

方法三:

這個方法其實是方法二的變種。就是提前定義一個OnClickListener 的handler,然後可以將這個activity中所有的button多使用這個handler,通過判斷不同id來進行不同的邏輯。這個方式適合比較多的button的情況使用。

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        View.OnClickListener handler=new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                switch (v.getId()){
                case id.button1:
                    Log.v("MyTag", "Button1 OnClick");
                    break;
                case id.button2:
                    Log.v("MyTag", "Button2 OnClick");
                    break;
                }
                
            }
            
        };
        
        Button btn1=(Button)this.findViewById(id.button1);
        Button btn2=(Button)this.findViewById(id.button2);
        
        btn1.setOnClickListener(handler);
        btn2.setOnClickListener(handler);

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.