Android MVC Framework

14 浏览
0 Comments

Android MVC Framework

我想知道是否有人了解一些用于传统应用程序的Android框架。例如,像Rails这样的框架,我们可以很容易地看到MVC模式。

0
0 Comments

Android MVC Framework的出现原因是为了提供更多功能,类似于.NET MVC。然而,Android本身只提供了基本的MVC模式,没有包含额外的功能。为了解决这个问题,可以使用com.divankits.mvc模块。通过查看其中一个示例,可以了解如何使用它。

com.divankits.mvc模块的详细信息如下:

- 可以将属性绑定到视图(布局)对象

- 可以创建字段验证器

- 可以将模型转换为JSON格式

在这里,我们不仅提供了模块的详细信息,还提供了使用方法的链接。

以下是使用com.divankits.mvc模块的示例代码:

// 导入必要的类
import com.divankits.mvc.controllers.Controller;
import com.divankits.mvc.controllers.Model;
import com.divankits.mvc.forms.annotations.FormId;
import com.divankits.mvc.forms.annotations.Validate;
import com.divankits.mvc.models.ObservableString;
import com.divankits.mvc.models.Property;
import com.divankits.mvc.views.View;
// 创建模型类
public class MyModel extends Model {
    // 使用注释将字段绑定到视图
    @Property
    @FormId(R.id.text_view)
    public ObservableString text = new ObservableString();
    // 创建字段验证器
    @Validate(R.id.text_view)
    public boolean isTextValid(String text) {
        return text.length() > 0;
    }
    // 将模型转换为JSON
    public String toJson() {
        return toJson(this);
    }
}
// 创建控制器类
public class MyController extends Controller {
    // 在构造函数中初始化模型和视图
    public MyController(MyModel model, MyView view) {
        super(model, view);
    }
    // 在需要时更新视图
    public void updateView() {
        getView().updateText(model.text.get());
    }
}
// 创建视图类
public class MyView extends View {
    // 更新文本视图
    public void updateText(String text) {
        // 更新文本视图的代码
    }
}
// 在Activity或Fragment中使用模型-视图-控制器模式
public class MainActivity extends AppCompatActivity {
    private MyController controller;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        // 创建模型、视图和控制器
        MyModel model = new MyModel();
        MyView view = new MyView();
        controller = new MyController(model, view);
        // 更新视图
        controller.updateView();
    }
}

通过使用com.divankits.mvc模块,可以扩展Android的MVC模式,添加更多功能,如属性绑定、字段验证和模型转换为JSON等。

0
0 Comments

问题的出现原因是Android本身不支持MVC架构,因为Activities和Fragments承担了视图和控制器的职责。而且在Android中,没有标准的MVC实现框架。

为了解决这个问题,我创建了一个MVC(实际上是MVP)的模板/教程应用程序,展示了我在应用程序中实施MVP的方法。您可以将此应用程序用作教程,或者克隆/分叉它,并将其用作Android Studio模板来开发您自己的应用程序。源代码在这里:https://github.com/techyourchance/android_mvc_template

0
0 Comments

Android MVC Framework问题的出现原因是Android平台的限制,目前还没有出现标准的MVC框架。在Android的开发过程中,有一些限制,如Fragment动画的限制,数据传递的限制等等。这些限制导致了开发者需要自己解决这些问题,以保持整体的MVC架构。虽然这些问题都是可以通过一些特殊的组件或工作方式解决的,但是需要开发者有足够的经验和能力来实现。

解决Android MVC Framework问题的方法是将顶级组件设置为Activity,主要负责顶级导航(基于标签、基于菜单等)、后退栈和状态保存。顶级组件不应该管理应用程序的任何特定屏幕,而是管理每个顶级屏幕的控制器。控制器都是Fragment,并且可以包含子控制器。所有的屏幕过渡都使用Fragment事务而不是Intents/Activities进行。在Fragments之间传递数据是另一个争议点,因为Android通常只支持通过Activity传递数据,但在这种架构中,Fragments需要相互传递数据。

尽管目前还没有一个完整的框架可以解决这个问题,但是如果开发团队具备足够的经验和能力,这种架构绝对是值得追求的。通过这种架构,开发出的应用程序不会受到传统Android应用程序的用户体验限制,这是很少有Android应用程序能够实现的。同时,这种架构也可以让Android应用程序达到和iOS应用程序相同的用户体验水平,这是非常令人激动的。

0