當前位置:首頁 » 安卓系統 » android按鈕的點擊事件

android按鈕的點擊事件

發布時間: 2022-05-04 07:31:49

1. android怎麼設置按鈕點擊事件

通過setOnClickListener()來綁定單擊事件 例如: Button button = (Button) findViewById(R.id.button_id); button.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Perform action on click //增加自己的代碼...... 例如下面的 final TextView text = (TextView) findViewById(R.id.textView1); text.setText("OnClick. " + " ...."); } });

2. Android中Eclipse怎樣創建按鈕Button點擊事件

Android中設置Button點擊監聽方法如下:

方法一、

java">ButtonBtn1=(Button)findViewById(R.id.button1);
Btn1.setOnClickListener(newButton.OnClickListener(){
publicvoidonClick(Viewv){
//點擊了Btn1
}

});

方法二、

ButtonBtn2=(Button)findViewById(R.id.button2);
Btn2.setOnClickListener(listener);

Button.OnClickListenerlistener=newButton.OnClickListener(){//創建監聽對象
publicvoidonClick(Viewv){
//點擊了Btn2
}

};

方法三、

publicvoidBtn3OnClick(Viewview){
//點擊了Btn23
}

//需要在layout布局對應Button中添加android:onClick="Btn3OnClick",Btn3OnClick可自行命名
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3"
android:onClick="Btn3OnClick"/>

3. 如何綁定android點擊事件

在Android中為組件綁定點擊事件的方式可以分為四種,
1、 在xml布局文件中,定義onclick的方式
<!—第一步在XML文件中給對應組件添加Onclick屬性-->
<Button
android:id="@+id/submitbutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:onClick="buttonClickHandle"
android:layout_alignParentTop="true"
android:text="提交" />
//第二步在對應的Activity中創建一個與onClick屬性值相同的方法,並傳入一個View參數,當Button被點擊時就會回調這個方法。
public void buttonClickHandle(View view) {
Snackbar.make(coordinatorLayout, "你點擊了Button", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
另外三種綁定點擊事件的方式實際上就是通過組件調用setOnClickListener()的方法,下面我們就來看一下這個方法的源碼
/**
* Register a callback to be invoked when this view is clicked. If this view is not
* clickable, it becomes clickable.
*
* @param l The callback that will run
*
* @see #setClickable(boolean)
*/
public void setOnClickListener(@Nullable OnClickListener l) {
if (!isClickable()) {
setClickable(true);
}
getListenerInfo().mOnClickListener = l;
}

根據源碼我們可以看到這個方法中需要一個OnClickListener的對象。下面我們就來看看這個OnClickListener對象是個什麼東東。
/**
* Interface definition for a callback to be invoked when a view is clicked.
*/
public interface OnClickListener {
/**
* Called when a view has been clicked.
*
* @param v The view that was clicked.
*/
void onClick(View v);
}
根據源碼我們可以看到實際上這個OnClickListener就是一個介面,這個介面中有一個onClick的抽象方法。所以我們在創建這個OnClickListener對象是還需要實現這個抽象方法。這個onClick的抽象方法實際上就是當我們點擊按鈕後會回調的方法。我們對於點擊事件的響應處理就在這個方法中進行。
現在我們已經了解了設置點擊事件的setOnClickListener方法,根據我們如何創建這個方法中的OnClickListener對象,我們設置點擊事件的方式可以分為如下三種:
1、內部類的形式
a. package com.example.hsport.catalog;

import android.os.Bundle;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

private CoordinatorLayout coordinatorLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator);
// 獲取button對象
Button button = (Button) findViewById(R.id.submitbutton);
//創建內部類的實例
MyListener myListener = new MyListener();
//設置button的點擊事件,將實現OnClickListener介面的內部類實例傳入到setOnClickListener方法中
button.setOnClickListener(myListener);
}

//創建一個內部類實現View.OnClickListener介面,並實現其onClick方法
private class MyListener implements View.OnClickListener {
@Override
public void onClick(View v) {
Snackbar.make(coordinatorLayout, "你點擊了Button", Snackbar.LENGTH_LONG).setAction("Action", null).show();
}
}
}

2、 匿名內部類的方式
package com.example.hsport.catalog;

import android.os.Bundle;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {

private CoordinatorLayout coordinatorLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator);
//獲取Button對象
Button button = (Button) findViewById(R.id.submitbutton);
//以創建一個View.OnClickListener的匿名內部類,並實現它的onClick方法
button.setOnClickListener(new View.OnClickListener() {
//在onClick方法中我們就可以設置button的響應代碼了
@Override
public void onClick(View v) {
Snackbar.make(coordinatorLayout, "你點擊了Button",Snackbar.LENGTH_LONG).setAction("Action", null).show();
}
});
}

3、 讓主類實現OnClickListener介面,然後再主類實現未實現的方法

package com.example.hsport.catalog;

import android.os.Bundle;
import android.support.design.widget.CoordinatorLayout;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private CoordinatorLayout coordinatorLayout;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
coordinatorLayout = (CoordinatorLayout) findViewById(R.id.coordinator);
//獲取Button對象
Button button = (Button) findViewById(R.id.submitbutton);
//因為我們讓MainActivity實現了View.OnClickListener這個介面,所以setOnClickListener方法中的參數直接傳入this即可。
button.setOnClickListener(this);
}

//因為MainActivity實現了View.OnClickListener介面,所以在MainActivity中還有要實現該介面中改的onClick方法來處理點擊事件。
@Override
public void onClick(View v) {
Snackbar.make(coordinatorLayout, "你點擊了Button",Snackbar.LENGTH_LONG).setAction("Action", null).show();
}
}
關於如何給組件綁定點擊事件,是Android中的基礎知識,如果你還想更加詳細的了解,推薦你可以去一個叫做秒秒學的教程網站看看,夯實下基礎。

4. android button按鈕響應點擊事件方式有哪兩種方式

1、調用setOnItemClickListener

2、布局中文件中添加android:onClick="myClick" //myClick為方法名

5. android 點擊事件怎麼寫

按鈕監聽的3種方式


  • 使用setOnClickListener (View.OnClickListener l)方法

loginBtn.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewview){
Toast.makeText(ButtonActivity.this,"點擊了登錄按鈕",Toast.LENGTH_SHORT).show();
}
});


  • 實現介面的方式

.OnClickListener{
privateButtonloginBtn;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.button_activity);
loginBtn=(Button)findViewById(R.id.login_btn);
}
@Override
publicvoidonClick(Viewview){
switch(view.getId()){
caseR.id.login_btn:
Toast.makeText(ButtonActivity.this,"點擊了登錄按鈕",Toast.LENGTH_SHORT).show();
break;
default:
break;
}
}
}


  • 在布局文件中加使用android:onClick屬性

//1、先在布局文件中聲明android:onClick="clickLoginBtn"
<Button
android:id="@+id/login_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="登錄"
android:onClick="clickLoginBtn"/>
//2、然後在代碼總實現該同名方法,注意方法的訪問許可權必須為public
publicvoidclickLoginBtn(Viewview){
Toast.makeText(ButtonActivity.this,"點擊了登錄按鈕",Toast.LENGTH_SHORT).show();
}

6. android 怎麼樣讓按鈕自動執行點擊事件

你向按鈕發WM_COMMAND吧
或者用mouse_event模擬滑鼠點擊

*...看錯...原來是Android...樓主請無視我的回復...

7. android 中怎樣給按鈕添加點擊事件

xml文件代碼如下:
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2" />

四種方法分述如下:
匿名內部類:
public class TestButtonActivity extends Activity {

Button btn1, btn2;
Toast tst;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);

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

btn1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast tst = Toast.makeText(TestButtonActivity.this, "111111111", Toast.LENGTH_SHORT);
tst.show();

}
});

btn2.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast tst = Toast.makeText(TestButtonActivity.this, "222222222", Toast.LENGTH_SHORT);
tst.show();
}
});
}
}

自定義單擊事件監聽類:
public class TestButtonActivity extends Activity {

Button btn1, btn2;
Toast tst;

class MyClickListener implements OnClickListener {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(TestButtonActivity.this, "111111111", Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst = Toast.makeText(TestButtonActivity.this, "222222222", Toast.LENGTH_SHORT);
tst.show();
break;
default:
break;
}
}
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);

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

btn1.setOnClickListener(new MyClickListener());
btn2.setOnClickListener(new MyClickListener());
}
}

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

Button btn1, btn2;
Toast tst;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);

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

btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
}

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(this, "111111111", Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst = Toast.makeText(this, "222222222", Toast.LENGTH_SHORT);
tst.show();
break;
default:
break;
}
}
}

最後一種是我今天看到的一種寫法,在XML文件中「顯示指定按鈕的onClick屬性,這樣點擊按鈕時會利用反射的方式調用對應Activity中的click()方法」
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Button1" />

<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="onClick"
android:text="Button2" />

這里在輸完android:的時候按下 Alt+/ 會有 onClick 屬性的提示, 但輸入到 android:onClick=「 的地方按下 Alt+/ 並沒有提示 onClick 選項,讓我突然覺得這里好像有點問題。
public class TestButtonActivity extends Activity {

Button btn1, btn2;
Toast tst;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_button);
}

// 注意 這里沒有 @Override 標簽
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
tst = Toast.makeText(this, "111111111", Toast.LENGTH_SHORT);
tst.show();
break;
case R.id.button2:
tst = Toast.makeText(this, "222222222", Toast.LENGTH_SHORT);
tst.show();
break;
default:
break;
}
}
}

這種寫法整個代碼中都不用聲明button就可以實現button的單擊事件。
以上就是四種實現按鈕單擊事件的方法。
粗略總結一下,就是按鈕少的時候用匿名內部類會比較快,比如寫demo測試的時候或者登陸界面之類的。
按鈕多的情況我還是選擇第三種方法,方便。
關於第四種方法,我感覺最方便,但看了很多代碼還是覺得寫法不夠大眾化,感興趣的朋友可以對此研究研究。相信會有不少收獲。

8. android中如何設置處理點擊按鈕事件

button.setOnClickListener(new
OnClickListener()
{
@Override
public
void
onClick(View
view)
{
button.setVisibility(View.GONE);//設置button隱藏不可見
}
});
if(bmp==null){
View.setVisible(View.GONE);
}else{
View.setVisible(View.VISIBLE);
}
希望能幫到你
如果還不會,你可以hi我
隨時在線的喲
親!

9. android 怎麼設置點擊事件

布局文件中加入屬性 android:id="@+id/content_01"

Activity中Button button_01=(Button) findViewById(R.id.content_01);

點擊事件
button_01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, ConversationListActivity.class);
startActivity(intent);
}
});

10. android項目多個返回按鈕點擊事件怎樣用一個方法解決

返回上一個activity只需要調用 finish() 方法(前提是你跳轉的時候沒有關閉上個activity)

當然,這也必須要通過點擊事件來實現

1.寫個BaseActivity實現OnClickListener
ckListener{}
這樣每個繼承它的activity都會自動重寫
@Override
publicvoidonClick(Viewview){
switch(view.getid){
}
}
給每一個需要點擊事件的view寫個監聽view.setOnClickListener(this);

2.使用框架 比如xUtil等 不推薦

3.使用butterknife

4.使用rxjava實現的rxbus

5.使用EventBus 不推薦

熱點內容
如何復制密碼狗 發布:2025-05-15 05:15:28 瀏覽:737
c語言報告三 發布:2025-05-15 05:10:37 瀏覽:844
09壓縮餅干 發布:2025-05-15 05:05:58 瀏覽:279
迭代法編程c 發布:2025-05-15 04:58:01 瀏覽:815
用什麼dns伺服器地址快 發布:2025-05-15 04:52:59 瀏覽:27
手機端so反編譯 發布:2025-05-15 04:50:55 瀏覽:610
linuxlamp安裝 發布:2025-05-15 04:50:45 瀏覽:578
sqlplus緩存區怎麼設置 發布:2025-05-15 04:50:44 瀏覽:858
shell腳本環境變數 發布:2025-05-15 04:45:18 瀏覽:693
安卓nba2k18什麼時候出 發布:2025-05-15 04:38:42 瀏覽:393