所以我的应用程序具有此MVP实现
myActivity:
class ValidateOTPActivity : AppCompatActivity(), ValidateOTPListener {
private lateinit var presenter: ValidateOTPPresenter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
presenter = ValidateOTPPresenter(this, this)
...
...
}
}
myPresenter:
class ValidateOTPPresenter constructor(val context: Context, val listener: ValidateOTPListener) {
...
...
...
}
myListener:
interface ValidateOTPListener {
fun onValidationSuccess(response: JSONObject)
fun onValidationFailed()
}
我想在演示者中同时使用Context和ValidateOTPListener,如何避免在this
中传递两个presenter = ValidateOTPPresenter(this, this)
?我只想通过一个this
,可以吗?
答案 0 :(得分:0)
您可以将
public class OnlineProductList extends AsyncTask<Void,Void,Void>{
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
System.out.println("Program: " + productData.length / 3 + " Products found");
//create product objects
Product[] product = new Product[productData.length / 3];
for (int i = 0; i < product.length; i++) {
product[i] = new Product(productData[3 * i], productData[1 + 3 * i], Boolean.parseBoolean(productData[2 + 3 * i]));
}
//create buttons for available products
MainActivity.productButton = new Button[product.length];
for (int i = 0; i < productData.length; i++) {
MainActivity.productButton[i] = new Button(this);
MainActivity.productButton[i].setWidth(MainActivity.orderHorizontalLayout.getWidth());
MainActivity.productButton[i].setHeight(MainActivity.orderHorizontalLayout.getHeight() / 10);
MainActivity.productButton[i].setText(product[i].name);
MainActivity.orderHorizontalLayout.addView(MainActivity.productButton[i]);
}
}
}
转换为MainActivity.productButton[i] = new Button(this);
内部的界面
Context
答案 1 :(得分:0)
嗨,您可以执行以下操作:
class ValidateOTPActivity : AppCompatActivity(), ValidateOTPListener {
private lateinit var presenter: ValidateOTPPresenter
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
presenter = ValidateOTPPresenter(this)
...
...
}
}
然后在您的演示者中:
class ValidateOTPPresenter constructor(val context: Context) {
val otpListener:ValidateOTPListener
init{
otpListener= context as ValidateOTPListener
}
...
...
...
}