源码阅读 2 ErrorView

地址:

https://github.com/xiprox/ErrorView


一个简单的自定义组件,就是往 LinearLayout 里加了点东西。

关键代码:


ErrorView 继承了 LinearLayout ,这行代码就是向 ErrorView 中添加 error_view_layout 。


而 error_view_layout 中使用了 merge。

http://blog.csdn.net/xyz_lmn/article/details/14524567


参照这种方式,就可以写一个简单,可复用的组件了。


以下是一个简单的计算器应用程序的 MVP 架构示例: Model(模型): ```java public class CalculatorModel { public int add(int firstNumber, int secondNumber) { return firstNumber + secondNumber; } public int subtract(int firstNumber, int secondNumber) { return firstNumber - secondNumber; } public int multiply(int firstNumber, int secondNumber) { return firstNumber * secondNumber; } public int divide(int firstNumber, int secondNumber) { if (secondNumber == 0) { return 0; } return firstNumber / secondNumber; } } ``` View(视图): ```java public interface CalculatorView { void showResult(String result); void showError(String error); } ``` Presenter(表示层): ```java public class CalculatorPresenter { private CalculatorView view; private CalculatorModel model; public CalculatorPresenter(CalculatorView view) { this.view = view; model = new CalculatorModel(); } public void onAddButtonClicked(int firstNumber, int secondNumber) { int result = model.add(firstNumber, secondNumber); view.showResult(String.valueOf(result)); } public void onSubtractButtonClicked(int firstNumber, int secondNumber) { int result = model.subtract(firstNumber, secondNumber); view.showResult(String.valueOf(result)); } public void onMultiplyButtonClicked(int firstNumber, int secondNumber) { int result = model.multiply(firstNumber, secondNumber); view.showResult(String.valueOf(result)); } public void onDivideButtonClicked(int firstNumber, int secondNumber) { int result = model.divide(firstNumber, secondNumber); if (result == 0) { view.showError("Cannot divide by zero"); } else { view.showResult(String.valueOf(result)); } } } ``` 在这个示例中,Model(计算器的业务逻辑)和 View(UI)是相互独立的。Presenter(表示层)通过将 View 和 Model 分离开来,使得程序变得更容易维护和测试。现在,我们可以在 Activity 或 Fragment 中使用 Presenter 来控制计算器的行为,从而实现 MVC 架构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值