Android MVC Demo范例参考,基本上很清晰和标准

Android MVC Demo范例参考,基本上很清晰和标准


MVC就是将V(View)和M(Model)通过C(Controller)分离开,降低耦合度。


这里给出一个自己写的Android MVC参考的规范:


项目结构:

技术分享


布局XML(activity_main.xml):


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="MVC加载数据" />

    <TextView
        android:id="@+id/tv_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/btn"
        android:layout_marginTop="10dp" />

</RelativeLayout>

MainActivity.java


package com.tandong.androidmvc;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

import com.tandong.androidmvc.R;
import com.tandong.androidmvc.base.BaseActivity;
import com.tandong.androidmvc.implement.MainImplement;
import com.tandong.androidmvc.model.MainModel;

public class MainActivity extends BaseActivity implements MainImplement,
		OnClickListener {
	private Button btn;
	private TextView tv_view;
	private MainModel mModel;

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

		mModel = new MainModel();
		btn = (Button) this.findViewById(R.id.btn);
		tv_view = (TextView) this.findViewById(R.id.tv_view);
		btn.setOnClickListener(this);
	}

	@Override
	public void loadData() {
		mModel.loadData(tv_view);
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btn:
			loadData();
			break;

		default:
			break;
		}
	}

}

BaseActivity.java


package com.tandong.androidmvc.base;

import android.app.Activity;
import android.os.Bundle;

public class BaseActivity extends Activity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
	}
}

MainImplement.java


package com.tandong.androidmvc.implement;

public interface MainImplement {
	public void loadData();
}

MainModel.java


package com.tandong.androidmvc.model;

import android.widget.TextView;

public class MainModel {
	public void loadData(TextView tv_view) {
		tv_view.setText("MVC模式在Android中的应用,获取到的Model中处理的数据");
	}
}

这样就实现了逻辑实现和界面的分离。


作者:谭东

QQ:852041173




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。