gpt4 book ai didi

java - 将 OnClick 内容单独放在另一个类中

转载 作者:行者123 更新时间:2023-12-01 09:05:19 24 4
gpt4 key购买 nike

我想将 OnClick 内容分离到另一个类中。
将 onclick 内容分离到另一个类中好吗?
如果是,我的编码方式是正确的方式还是有人可以告诉我更好的方式?

public class MainActivity extends AppCompatActivity {

private ButtonsActions mButtonsActions;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);

mButtonsActions = new ButtonsActions(this);
}

@OnClick(R.id.btn1)
public void btnTest1() {
mButtonsActions.btnTest1();
}

@OnClick(R.id.btn2)
public void btnTest2() {
mButtonsActions.btnTest2();
}

}


public class ButtonsActions {

private MainActivity view;

public ButtonsActions(MainActivity view) {
this.view = view;
}

public void btnTest1() {
Toast toast = Toast.makeText(view, "Button 1 clicked!", Toast.LENGTH_SHORT);
toast.show();
}

public void btnTest2() {
Toast toast = Toast.makeText(view, "Button 2 clicked!", Toast.LENGTH_SHORT);
toast.show();
}

}

最佳答案

您的问题没有确切答案。

您想要实现的目标是什么?

对我来说,这听起来像是您想要关注点分离。

MVC 解决此类问题会很棒,但不幸的是 Android 应用程序的结构不允许您实现它。

那么有哪些选择?

好吧,你仍然可以分离关注点,但不是你这样做的方式,你放入不同类中的代码都与 UI 相关,这样的代码应该保留在 Activity 内部因为它属于表示层

您需要做的是将所有业务逻辑抽象到单独的类中。

您可以使用数据库逻辑执行相同的操作。

然后,您将能够通过实现设计模式来更进一步,因为它可能适合例如存储库模式,以通过服务进行所有数据库事务。

或者您可能构建一个 API 服务,所有网络任务都通过它执行。

最后,如果您想更进一步,请应用可靠的原则和依赖项注入(inject),创建 util 类以实现可重用性并进行单元测试。

关于java - 将 OnClick 内容单独放在另一个类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41325908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com