美文网首页
DataBinding click

DataBinding click

作者: 炫子_260f | 来源:发表于2022-06-12 00:53 被阅读0次

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools">

    <data>

        <variable
            name="viewModel"
            type="com.example.mybluetooth.MainActivity" />
        <variable
            name="onClick"
            type="android.view.View.OnClickListener" />
    </data>

    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
        <Button
            android:id="@+id/sppBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="36dp"
            android:layout_marginTop="28dp"
            android:onClick="@{viewModel::clickView}"
            android:text="SPP"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
        <Button
            android:id="@+id/sppBtn2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="36dp"
            android:layout_marginTop="28dp"
            android:onClick="@{(v)->viewModel.clickView(v)}"
            android:text="SPP"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/sppBtn" />
        <Button
            android:id="@+id/sppBtn3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="36dp"
            android:layout_marginTop="28dp"
            android:onClick="@{onClick}"
            android:text="SPP"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@id/sppBtn2" />
    </androidx.constraintlayout.widget.ConstraintLayout>
</layout>

MainActivity.java

public class MainActivity extends AppCompatActivity {

    String TAG = MainActivity.class.getSimpleName();
    ActivityMainBinding binding;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        binding = DataBindingUtil.setContentView(this, R.layout.activity_main);
        binding.setViewModel(this);//将xml中定义的变量 viewModel赋值

        binding.setOnClick(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.e(TAG,"setOnClickListener------"+view.getId());
            }
        });

        Log.e(TAG, "OnCreate");
    }

    public void clickView(View view) {
        Log.e(TAG,"clickView------"+view.getId());
        int id = view.getId();
        ...
    }
}

三种验证可行的click方式

相关文章

网友评论

      本文标题:DataBinding click

      本文链接:https://www.haomeiwen.com/subject/xzzwmrtx.html