オブジェクトがあるクラスtilがあるとしましょう-クラスValidatorのインスタンスです。
Util内でValidatorクラスをインスタンス化したくないので、コンストラクタを介してそれを渡します。
public class Util {
@Inject
public Util(Validator validator) {
}
}
Validatorインスタンスを提供するモジュールがあります。
@Provides
@Singleton
Validator provideValidator() {
return Validator.getInstance();
}
utilクラスのインスタンス:
@Provides
Util provideUtil(Validator validator) {
return new Util(validator);
}
Utilのインスタンスを提供するコンポーネントが配線されています。
Util getUtil()
だから私の活動の中で、私はそれを次のように呼び出すことができます:
Util myUtil = getComponent.getUtil();
これらはすべて正常に機能します。インスタンス化されると、myUtilにはValidatorクラスの適切なインスタンスがあります。
次に、addressという名前の文字列変数を渡します(UIを介したユーザー入力です)。 Validatorのインスタンスとユーザーが入力した文字列の両方を渡すように、コンストラクターを変更したいと思います。
@Inject
public Util(Validator validator, String address) {
}
その2番目のパラメーターを渡す方法を理解することができません。誰か教えてくれますか?
理想的には、次のようにUtilをインスタンス化したいと思います。
Util myUtil = getComponent.getUtil(txtAddress.getText());
@Inject
Usermodel uuser;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
userComponent dc = DaggeruserComponent.create();
dc.injectMain(this);
historymodel hm = uuser.getHistorymodel();// get the models to pass user inputs
videoModel vm = uuser.getVideoModel();// get the models to pass user inputs
hm.setUid("userid ");
}
}