onClick im Button nicht funktionieren, verwenden Sie Datenbindung
Begann ich zu lernen, Data-Binding-Bibliothek
https://developer.android.com/topic/libraries/data-binding/index.html
Kann ich nicht verstehen, was so nicht tun.
android {
....
dataBinding {
enabled = true
}
}
<data>
<variable
name="presenter"
type="ua.com.it_st.ordersmanagers.activiteies.HistoryActivity"/>
</data>
<Button
android:id="@+id/test"
android:text="Start second activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:onClick="@{presenter::onHistoryClick}"
/>
public class HistoryActivity extends MvpAppCompatActivity implements HistoryView {
@InjectPresenter
HistoryPresenter historyPresenter;
ActivityHistoryBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = DataBindingUtil.setContentView(this, R.layout.activity_history);
}
public void onHistoryClick(View view) {
Log.i("test ","test");
binding.test.setText("test");
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie vergessen, setzen Sie die ViewModel, um Ihre Bindung.
Wenn Sie erwarten, dass die
onClick
empfangen werden können, in Ihrer Aktivität, die Sie tun müssen,obwohl ich würde empfehlen, aufrufen von ViewModel in Ihrer XML-Datei
viewModel
oderactivity
(es heißt Moderator jetzt).Wenn Sie möchten, dass Ihre
presenter
ot erhaltenonClick
ändern Sie die ViewModel-Typ in Ihrem layout von der Tätigkeit zum Moderator, Umsetzung deronClick
Methode in Ihre presenter, und tunBeste Weg, dies zu tun ist, erhalten Sie die onClick-in der Tätigkeit selbst dann passieren, dass die Veranstaltung in die Funktion (falls vorhanden) in der view-Modell. Sie können dies in den folgenden Schritten
1 - In der layout-Datei, ändern machen wie:-
2 - Aktivität, Datei, implementieren Sie Anzeigen.OnClickListener und registrieren von listener
die Bindung.test.setOnClickListener(this)
3 - Überschreiben Sie die onClick-Methode als
binding.test
hier?