【ListViewJSON】【com.demo.app.common】【UIHelper】源码分析及其在工程中作用
源码如下:
package com.demo.app.common; import java.util.regex.Pattern; import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.graphics.Color; import android.net.Uri; import android.os.Handler; import android.os.Message; import android.text.Spannable; import android.text.SpannableString; import android.text.style.ForegroundColorSpan; import android.text.style.StyleSpan; import android.view.View; import android.widget.Toast; import com.demo.app.AppContext; import com.demo.app.AppManager; import com.demo.app.ui.MainActivity; /** * 应用程序UI工具包:封装UI相关的一些操作 * * @version 1.0 * @created 2012-3-21 */ public class UIHelper { public final static int LISTVIEW_ACTION_INIT = 0x01; public final static int LISTVIEW_ACTION_REFRESH = 0x02; public final static int LISTVIEW_ACTION_SCROLL = 0x03; public final static int LISTVIEW_ACTION_CHANGE_CATALOG = 0x04; public final static int LISTVIEW_DATA_MORE = 0x01; public final static int LISTVIEW_DATA_LOADING = 0x02; public final static int LISTVIEW_DATA_FULL = 0x03; public final static int LISTVIEW_DATA_EMPTY = 0x04; public final static int LISTVIEW_DATATYPE_NEWS = 0x01; public final static int LISTVIEW_DATATYPE_BLOG = 0x02; public final static int LISTVIEW_DATATYPE_POST = 0x03; public final static int LISTVIEW_DATATYPE_TWEET = 0x04; public final static int LISTVIEW_DATATYPE_ACTIVE = 0x05; public final static int LISTVIEW_DATATYPE_MESSAGE = 0x06; public final static int LISTVIEW_DATATYPE_COMMENT = 0x07; public final static int REQUEST_CODE_FOR_RESULT = 0x01; public final static int REQUEST_CODE_FOR_REPLY = 0x02; /** 表情图片匹配 */ private static Pattern facePattern = Pattern .compile("\\[{1}([0-9]\\d*)\\]{1}"); /** 全局web样式 */ public final static String WEB_STYLE = "<style>* {font-size:16px;line-height:20px;} p {color:#333;} a {color:#3E62A6;} img {max-width:310px;} " + "img.alignleft {float:left;max-width:120px;margin:0 10px 5px 0;border:1px solid #ccc;background:#fff;padding:2px;} " + "pre {font-size:9pt;line-height:12pt;font-family:Courier New,Arial;border:1px solid #ddd;border-left:5px solid #6CE26C;background:#f6f6f6;padding:5px;} " + "a.tag {font-size:15px;text-decoration:none;background-color:#bbd6f3;border-bottom:2px solid #3E6D8E;border-right:2px solid #7F9FB6;color:#284a7b;margin:2px 2px 2px 0;padding:2px 4px;white-space:nowrap;}</style>"; /** * 显示首页 * * @param activity */ public static void showHome(Activity activity) { Intent intent = new Intent(activity, MainActivity.class); activity.startActivity(intent); activity.finish(); } /** * 调用系统安装了的应用分享 * * @param context * @param title * @param url */ public static void showShareMore(Activity context, final String title, final String url) { Intent intent = new Intent(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_SUBJECT, "分享:" + title); intent.putExtra(Intent.EXTRA_TEXT, title + " " + url); context.startActivity(Intent.createChooser(intent, "选择分享")); } /** * 打开浏览器 * * @param context * @param url */ public static void openBrowser(Context context, String url) { try { Uri uri = Uri.parse(url); Intent it = new Intent(Intent.ACTION_VIEW, uri); context.startActivity(it); } catch (Exception e) { e.printStackTrace(); ToastMessage(context, "无法浏览此网页", 500); } } /** * 组合动态的回复文本 * * @param name * @param body * @return */ public static SpannableString parseActiveReply(String name, String body) { SpannableString sp = new SpannableString(name + ":" + body); // 设置用户名字体加粗、高亮 sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, name.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); sp.setSpan(new ForegroundColorSpan(Color.parseColor("#0e5986")), 0, name.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return sp; } /** * 组合消息文本 * * @param name * @param body * @return */ public static SpannableString parseMessageSpan(String name, String body, String action) { SpannableString sp = null; int start = 0; int end = 0; if (StringUtils.isEmpty(action)) { sp = new SpannableString(name + ":" + body); end = name.length(); } else { sp = new SpannableString(action + name + ":" + body); start = action.length(); end = start + name.length(); } // 设置用户名字体加粗、高亮 sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); sp.setSpan(new ForegroundColorSpan(Color.parseColor("#0e5986")), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return sp; } /** * 组合回复引用文本 * * @param name * @param body * @return */ public static SpannableString parseQuoteSpan(String name, String body) { SpannableString sp = new SpannableString("回复:" + name + "\n" + body); // 设置用户名字体加粗、高亮 sp.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 3, 3 + name.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); sp.setSpan(new ForegroundColorSpan(Color.parseColor("#0e5986")), 3, 3 + name.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return sp; } /** * 弹出Toast消息 * * @param msg */ public static void ToastMessage(Context cont, String msg) { Toast.makeText(cont, msg, Toast.LENGTH_SHORT).show(); } public static void ToastMessage(Context cont, int msg) { Toast.makeText(cont, msg, Toast.LENGTH_SHORT).show(); } public static void ToastMessage(Context cont, String msg, int time) { Toast.makeText(cont, msg, time).show(); } /** * 点击返回监听事件 * * @param activity * @return */ public static View.OnClickListener finish(final Activity activity) { return new View.OnClickListener() { public void onClick(View v) { activity.finish(); } }; } /** * 主界面 * * @param context */ public static void showMain(Context context) { Intent intent = new Intent(context, MainActivity.class); context.startActivity(intent); } public static void showActivity(Context context, Class cls) { // TODO Auto-generated method stub Intent intent = new Intent(context, cls); context.startActivity(intent); } /** * 跳转首页 * * @param activity */ public static void showIndex(Context context) { Intent intent = new Intent(context, MainActivity.class); context.startActivity(intent); } /** * 清除app缓存 * * @param activity */ public static void clearAppCache(Activity activity) { final AppContext ac = (AppContext) activity.getApplication(); final Handler handler = new Handler() { public void handleMessage(Message msg) { if (msg.what == 1) { ToastMessage(ac, "缓存清除成功"); } else { ToastMessage(ac, "缓存清除失败"); } } }; new Thread() { public void run() { Message msg = new Message(); try { ac.clearAppCache(); msg.what = 1; } catch (Exception e) { e.printStackTrace(); msg.what = -1; } handler.sendMessage(msg); } }.start(); } /** * 退出程序 * * @param cont */ public static void Exit2(final Context cont) { AppManager.getAppManager().AppExit(cont); } /** * 退出程序 * * @param cont */ public static void Exit(final Context cont) { AlertDialog.Builder builder = new AlertDialog.Builder(cont); builder.setIcon(android.R.drawable.ic_dialog_info); builder.setTitle("退出"); builder.setPositiveButton("确认", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); // 退出 AppManager.getAppManager().AppExit(cont); } }); builder.setNegativeButton("取消", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.show(); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。