1. 明确需求,界面如下:可存,可根据id读取数据。
android中MVP模式(一)
android中MVP模式(一)
2. 建立bean
public class UserBean {       private String mFirstName;       private String mLastName;         public UserBean(String firstName, String lastName) {              this. mFirstName = firstName;              this. mLastName = lastName;       }         public String getFirstName() {              return mFirstName;       }         public String getLastName() {              return mLastName;       }  }

3. 建立model(处理业务逻辑,这里指数据读写),先写接口,后写实现
public interface IUserModel {       void setID(int id);         void setFirstName(String firstName);         void setLastName(String lastName);         int getID();         UserBean load(int id);// 通过id读取user信息,返回一个UserBean  }

实现不在这里写了。

4. 建立view(更新ui中的view状态),这里列出需要操作当前view的方法,也是接口
public interface IUserView {       int getID();         String getFristName();         String getLastName();         void setFirstName(String firstName);         void setLastName(String lastName);  }

5. 建立presenter(主导器,通过iView和iModel接口操作model和view),activity可以把所有逻辑给presenter处理,这样java逻辑就从手机的activity中分离出来。
public class UserPresenter {       private IUserView mUserView;       private IUserModel mUserModel;         public UserPresenter(IUserView view) {              mUserView = view;              mUserModel = new UserModel();       }         public void saveUser( int id, String firstName, String lastName) {              mUserModel.setID(id);              mUserModel.setFirstName(firstName);              mUserModel.setLastName(lastName);       }         public void loadUser( int id) {             UserBean user = mUserModel.load(id);              mUserView.setFirstName(user.getFirstName()); // 通过调用IUserView的方法来更新显示              mUserView.setLastName(user.getLastName());       }  }

6. activity中实现iview接口,在其中操作view,实例化一个presenter变量。
public class MainActivity extends Activity implements OnClickListener,IUserView {         UserPresenter presenter;       EditText id,first,last;       @Override       protected void onCreate(Bundle savedInstanceState) {              super.onCreate(savedInstanceState);             setContentView(R.layout. activity_main);                          findViewById(R.id. save).setOnClickListener( this);             findViewById(R.id. load).setOnClickListener( this);              id = (EditText) findViewById(R.id. id);              first = (EditText) findViewById(R.id. first);              last = (EditText) findViewById(R.id. last);                           presenter = new UserPresenter( this);       }         @Override       public void onClick(View v) {              switch (v.getId()) {              case R.id. save:                   presenter.saveUser(getID(), getFristName(), getLastName());                   break;              case R.id. load:                   presenter.loadUser(getID());                   break;              default:                   break;             }       }         @Override       public int getID() {              return new Integer( id.getText().toString());       }         @Override       public String getFristName() {              return first.getText().toString();       }         @Override       public String getLastName() {              return last.getText().toString();       }         @Override       public void setFirstName(String firstName) {              first.setText(firstName);       }         @Override       public void setLastName(String lastName) {              last.setText(lastName);       }    }

7. 所谓的mvp,即是(model-处理业务逻辑(主要是数据读写,或者与后台通信(其实也是读写数据)),view-处理ui控件,presenter-主导器,操作model和view)

更多相关文章

  1. Android SQLite 数据库、表的增、删、改、查操作
  2. Hello Android - Android SDCard操作(文件读写,容量计算)
  3. Android 文件操作总结
  4. [置顶] (柯昌合)Android Sqlite 持久化框架。类似于hibernate的s
  5. 基于Android TV端的文件选择器(UI比较丑,主要看逻辑)
  6. android通讯录数据库操作
  7. 【Android】win10操作系统下Android开发环境配置
  8. 操作android中的通讯录
  9. Android手势操作示例(上/下/左/右的判断)

随机推荐

  1. Android(安卓)抽屉导航
  2. android 中Drawable跟Bitmap转换及常用于
  3. android秒表计时代码
  4. Android如何实现ListView的Item松开渐变
  5. Android日历只显示年月,只显示年
  6. Android(安卓)短信发送器
  7. The "Android" command is deprecated.
  8. Android关于常用正则号码类Util
  9. android计算器布局(TableLayout)
  10. Android(安卓)ndk 入门4 - C++实现