ฉันต้องการ inject
the view (Activity object)
เข้าสู่ Presenter
ตอนนี้ฉันกำลังตั้งค่ามุมมองด้วยตนเองโดยใช้ตัวตั้งค่าของคลาสผู้นำเสนอ ฉันจะบรรลุเป้าหมายนี้โดยใช้ Dagger ได้อย่างไร คุณช่วยแสดงโค้ดตัวอย่างเกี่ยวกับวิธีการทำได้ไหม
นี่คือวิธีที่กิจกรรมหลักสร้างผู้นำเสนอ ณ ขณะนี้
public class MainActivity extends AppCompatActivity implements CountPresenter.View, ToastPresenter.View {
@Inject
CountPresenter countPresenter;
@Inject
ToastPresenter toastPresenter;
TextView countText;
Toast toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
countText = findViewById(R.id.text_count);
DaggerToastPresenterComponent.create().inject(this);
DaggerCountPresenterComponent.create().inject(this);
countPresenter.setView(this);
toastPresenter.setView(this) ;
findViewById(R.id.button_count).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
countPresenter.incrementCount();
}
});
findViewById(R.id.button_toast).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
toastPresenter.handleToastButtonClick();
}
});
}
}
**รหัสชั้นเรียนผู้นำเสนอ : **
public class CountPresenter {
private Counter counter ;
public void setView(View view) {
this.view = view;
}
private View view ;
@Inject
public CountPresenter() {
counter = Counter.getInstance() ;
}
public void incrementCount(){
counter.setCount(counter.getCount()+1);
view.setCounterText(counter.toString());
}
public interface View {
void setCounterText(String val) ;
}
}
รหัสเต็มที่นี่ :