Android快速开发框架dyh详解(五)---基础层的使用

转载请注明出处:http://blog.csdn.net/aa464971/article/details/43047543

详解地址:http://www.dyhdyh.com

最新版下载地址:http://www.dyhdyh.com/download

交流QQ群:146261923


dyh自带了一些基本的Activity、Fragment、Dialog、Adapter,以达到增强代码重用性的效果,用于被继承,让子类获得它的方法。

1、Activity

1.1、DyhBaseActivity,包含一些极为常用的方法,使子类Activity的代码更简洁。

1.1.1、Toast,DyhToast

toast("需要显示的内容");
		//普通方式toast,传入Context,String或者任何对象
		DyhToast.toast(context, obj);
		//在屏幕中央toast,传入Context,String或者任何对象
		DyhToast.toastCenter(context, obj);

1.1.2、按两次退出程序,重写Activity的onKeyDown方法,调用keyDownTwoExit();

	/**
	 * 按两次退出程序
	 */
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		return keyDownTwoExit(keyCode, event);
	}

1.1.3、带参数跳转Activity,直接传入activity的class,如果需要带参数跳转,多往方法传2个参数即可。

startActivity(IntentActivity.class);
		startActivity(IntentActivity.class, "string", "String传值");
		startActivity(IntentActivity.class, "boolean", true);
		startActivity(IntentActivity.class, "int", 9999);

1.1.4、获取res文件夹下的内容

		//获取res文件夹下strings.xml的值
		String string = getString(R.string.app_name);
		//获取res文件夹下drawable文件夹的对应的Drawable对象
		Drawable drawable = getResDrawable(R.drawable.main_color_text_selector);
		//获取res文件夹下colors.xml的值
		int color = getResColor(R.color.main_color_n);
		//获取res文件夹下dimens.xml的值
		float dimen = getResDimen(R.dimen.size);
		//获取assets文件夹里,单个文件的InputStream,传入文件名
		InputStream is=getAssetsFile("dyh.txt");


1.2、DyhBaseFragmentActivity,继承于FragmentActivity,包含DyhBaseActivity和FragmentActivity的全部功能。使用方法同FragmentActivity。

1.3、DyhFragmentPagerActivity,继承于DyhBaseFragmentActivity,使用方法见第一章。

1.4、DyhFragmentRadioActivity,继承于DyhBaseFragmentActivity,使用方法见第一章。


2、DyhBaseFragment

暂仅增加了toast(text)。


3、Adapter

3.1、DyhBaseAdapter,继承于BaseAdapter,一般用于ListView和GridView。

自带了View重用功能,使用起来也更简单。

public class ListViewAdapter extends DyhBaseAdapter {

	public ListViewAdapter(Context context, List<String> data) {
		super(context, data);
	}

	/**
	 * 条目的布局id
	 */
	@Override
	protected int getItemLayoutId() {
		//这里返回item的布局
		return R.layout.item_listview;
	}

	/**
	 * 初始化控件容器
	 */
	@Override
	protected Holder initHolder(Holder mHolder, View v) {
		ViewHolder holder = getViewHolder(mHolder);
		//把holder内的控件都初始化一遍,并返回holder
		holder.tv = (TextView) v.findViewById(R.id.tv);
		return holder;
	}

	protected void setViewdata(Holder mHolder, int position) {
		ViewHolder holder = getViewHolder(mHolder);
		//可以通过holder操作控件,根据position获取集合内的元素
		holder.tv.setText((String)data.get(position));
	}

	/**
	 * 该方法为固定写法
	 */
	@Override
	protected ViewHolder getViewHolder(Holder holder) {
		if (holder == null) {
			return new ViewHolder();
		} else {
			return (ViewHolder) holder;
		}
	}

	//需要先定义一个装控件的容器并继承Holder
	class ViewHolder extends Holder {
		TextView tv;
	}
}

4、 DyhBaseDialog,如果构造方法传过来的Activity是DyhBaseActivity,可以通过getActivity()来调用基础Activity的方法。

class MyDialog extends DyhBaseDialog{
public MyDialog(Context context) {
//如果需要设置Dialog的样式,则传两个参数(context,style),否则只传context
super(context,R.style.Theme_Dialog_NoTitle);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
//调用父类的onCreate,传入savedInstanceState和Dialog的布局
super.onCreate(savedInstanceState, R.layout.dialog_update);
}


@Override
protected void initView() {
//初始化控件
}
}

你可能感兴趣的:(android,base,dyh)