Я пытаюсь связать события с представлениями в xml с помощью Библиотека DataBinding поставляется с Android M. Я следую примерам из Android Developers и выполняя шаг за шагом. для атрибутов вида, таких как видимость, текст работает нормально, но если я пытаюсь связать с onclick, он не работает должным образом. Вот пример кода, который я пытался до сих пор:Использование библиотеки DataBinding для привязки событий
<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}"/>
MainActivity:
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);
}
}
MyHandlers:
public class MyHandlers {
public void onClickFriend(View view){
Log.i(MyHandlers.class.getSimpleName(),"Now Friend");
}
public void onClickEnemy(View view){
Log.i(MyHandlers.class.getSimpleName(),"Now Enemy");
}
}
Я написал только необходимый код для улучшения читабельности. Может ли кто-нибудь помочь мне в этом.
Да, и если вы используете класс Activity, как обработчики, то вам просто нужно сделать, это: 'binding.setHandlers (это),' – dorsz
Если у вас есть многие из тех же действий, вы можете использовать эту библиотеку для простоты - https://github.com/drstranges/ActionHandler –
@dorsz +100 вам! Я искал это часами! – kirtan403