相关疑难解决方法(0)

使用include标记的Android数据绑定

更新说明:

上面的例子工作正常,因为1.0-rc4版修复了需要不必要变量的问题.

原始问题:

我完全按照文档中的描述进行操作,但它不起作用:

main.xml中:

<layout xmlns:andr...
    <data>
    </data>
       <include layout="@layout/buttons"></include>
....
Run Code Online (Sandbox Code Playgroud)

buttons.xml:

<layout xmlns:andr...>
    <data>
    </data>
    <Button
        android:id="@+id/button"
        ...." />
Run Code Online (Sandbox Code Playgroud)

MyActivity.java:

 ... binding = DataBindingUtil.inflate...
binding.button; ->cannot resolve symbol 'button'
Run Code Online (Sandbox Code Playgroud)

如何获得按钮?

java data-binding android android-button android-databinding

95
推荐指数
5
解决办法
4万
查看次数

使用DataBinding库绑定事件

我正在尝试使用Android M附带的DataBinding Library将事件与xml中的视图绑定.我正在关注Android开发人员的示例并逐步实现.对于视图的属性,如可见性,文本工作正常,但如果我尝试与onclick绑定,它不会按预期工作.这是我到目前为止尝试过的示例代码:

 <data>
    <import type="android.view.View"/>
    <variable name="user" type="com.example.databinding.User"/>
    <variable name="handlers" type="com.example.databinding.MyHandlers"/>
</data>

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@{user.firstName}"
    android:visibility="@{user.isFriend ? View.VISIBLE : View.GONE}" />
 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click Me"
    android:id="@+id/button"
    android:layout_gravity="left"
    android:onClick="@{handlers.onClickFriend}"/>
Run Code Online (Sandbox Code Playgroud)

主要活动 :

  public class MainActivity extends AppCompatActivity {

  User user;

 @Override
 protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ActivityMainBinding binding = 
    DataBindingUtil.setContentView(this,R.layout.activity_main);
    user = new User("Pankaj","Kumar",true,true);
    binding.setUser(user);
   }
 }
Run Code Online (Sandbox Code Playgroud)

MyHandlers:

public class MyHandlers {
public void onClickFriend(View view){
    Log.i(MyHandlers.class.getSimpleName(),"Now Friend");
}

public void onClickEnemy(View …
Run Code Online (Sandbox Code Playgroud)

data-binding android android-databinding android-6.0-marshmallow

44
推荐指数
3
解决办法
4万
查看次数

在onClick时获取其他视图的值。数据绑定

我有android数据绑定的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">

    <data>
        <variable name="presenter" type="com.myapp.presentation.presenter.CreateUserPresenter"/>
    </data>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <android.support.design.widget.TextInputLayout
                    android:id="@+id/firstNameInput"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingLeft="16dp"
                    android:paddingTop="8dp"
                    android:paddingRight="16dp"
                    android:paddingBottom="8dp">
                    <android.support.design.widget.TextInputEditText
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:inputType="textCapSentences"
                        android:hint="@string/first_name" />
                </android.support.design.widget.TextInputLayout>
                <android.support.design.widget.TextInputLayout
                    android:id="@+id/secondNameInput"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:paddingLeft="16dp"
                    android:paddingTop="8dp"
                    android:paddingRight="16dp"
                    android:paddingBottom="8dp">
                    <android.support.design.widget.TextInputEditText
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:inputType="textCapSentences"
                        android:hint="@string/second_name" />
                </android.support.design.widget.TextInputLayout>
                <android.support.v7.widget.AppCompatButton
                    android:id="@+id/btnCreate"
                    style="@style/Widget.AppCompat.Button.Colored"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="12dp"
                    android:text="@string/create"
                    android:onClick="@{(view) -> presenter.createUser()}" />    
            </LinearLayout>    
</layout>
Run Code Online (Sandbox Code Playgroud)

CreateUserPresenter.class

public class CreateUserPresenter {

    public CreateUserPresenter () {}

    public void createUser(String firstName, String lastName) {

    }
}
Run Code Online (Sandbox Code Playgroud)

如何在单击按钮的方法中传递输入( …

xml android android-databinding

1
推荐指数
1
解决办法
1971
查看次数