转载请注明出处: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); }
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; } }
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() { //初始化控件 } }