Android Studio Button点击事件监听四种方式汇总备忘

1、匿名监听方式:


private Button btn_test = null;
btn_test = findViewById(R.id.btn_test);
btn_test.setOnClickListener(new View.OnClickListener() {
@Override
    public void onClick(View v) {
        tv_show.setText("Jimmy test.");
     }
});

2、MainActivity类上实现监听接口:

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private TextView tv_show = null;
    private Button btn_test = null;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        tv_show = (TextView)findViewById(R.id.tv_show);
        btn_test = findViewById(R.id.btn_test);
        btn_test.setOnClickListener(this);
    }
 
    @Override
    public void onClick(View v) {
        if (v == btn_test)
        {
            tv_show.setText("You are right.");
        }
    }
}

3、实名监听方式(针对1的):

public class MainActivity extends AppCompatActivity implements View.OnClickListener{
    private TextView tv_show = null;
    private Button btn_test = null;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        tv_show = (TextView)findViewById(R.id.tv_show);
        btn_test = findViewById(R.id.btn_test);
        btn_test.setOnClickListener(mm_jimmy_implements);
    }
 
    private final View.OnClickListener mm_jimmy_implements = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (v == btn_test)
            {
                tv_show.setText("Good afternoon, teacher.");
            }
        }
    };
}

4、利用xml布局文件中的onclick属性来指定:

<Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/btn_test"
        android:text="Test"
        android:onClick="OnTest"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

MainActivity.java中处理:

public class MainActivity extends AppCompatActivity{
    private TextView tv_show = null;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        tv_show = (TextView)findViewById(R.id.tv_show);
    }
 
    //self-defined functions
    public void OnTest(View view)
    {
        tv_show.setText("Don't let me down, please.");
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_38107457/article/details/121643595