阅读更多
public class ReferActivity extends ListActivity implements OnItemClickListener,OnItemLongClickListener{private DataHelper dataHelper;private UserInfo user;private MyWeiboSync weibo;private ListView listView;private ReferAdapter adapter;private JSONArray array;private AsyncImageLoader asyncImageLoader;private Handler handler;private ProgressDialog progressDialog;private View top_panel;private Button top_btn_left;private Button top_btn_right;private TextView top_title;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.refer);setUpViews();setUpListeners();dataHelper = DataBaseContext.getInstance(getApplicationContext());weibo = WeiboContext.getInstance();List userList = dataHelper.GetUserList(false);SharedPreferences preferences = getSharedPreferences("default_user",Activity.MODE_PRIVATE);String nick = preferences.getString("user_default_nick", "");if (nick != "") {user = dataHelper.getUserByName(nick,userList);top_title.setText("提到我的");//顶部工具栏名称}/*weibo.setAccessTokenKey(user.getToken());weibo.setAccessTokenSecrect(user.getTokenSecret());*/progressDialog = new ProgressDialog(ReferActivity.this);// 生成一个进度条progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);progressDialog.setTitle("请稍等");progressDialog.setMessage("正在读取数据中!");handler = new GetReferHandler();new GetReferThread().start();//耗时操作,开启一个新线程获取数据progressDialog.show();}private void setUpViews(){listView = getListView();top_panel = (View)findViewById(R.id.refer_top);top_btn_left = (Button)top_panel.findViewById(R.id.top_btn_left);top_btn_right = (Button)top_panel.findViewById(R.id.top_btn_right);top_title = (TextView)top_panel.findViewById(R.id.top_title);}private void setUpListeners(){listView.setOnItemClickListener(this);listView.setOnItemLongClickListener(this);}class GetReferHandler extends Handler {@Overridepublic void handleMessage(Message msg) {if(array!=null){adapter = new ReferAdapter(ReferActivity.this, array);listView.setAdapter(adapter);}progressDialog.dismiss();// 关闭进度条}}class GetReferThread extends Thread {@Overridepublic void run() {String jsonStr = weibo.getRefers(weibo.getAccessTokenKey(), weibo.getAccessTokenSecrect(), PageFlag.PageFlag_First, 0, 20, 0);try {JSONObject dataObj = new JSONObject(jsonStr).getJSONObject("data");if(dataObj!=null){array = dataObj.getJSONArray("info");}} catch (JSONException e) {e.printStackTrace();}Message msg = handler.obtainMessage();handler.sendMessage(msg);}}class ReferAdapter extends BaseAdapter {private Context context;private LayoutInflater inflater;private JSONArray array;public ReferAdapter(Context context, JSONArray array) {super();this.context = context;this.array = array;this.inflater = LayoutInflater.from(context);}@Overridepublic int getCount() {return array.length();}@Overridepublic Object getItem(int position) {return array.opt(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(final int position, View convertView, ViewGroup parent) {asyncImageLoader = new AsyncImageLoader();ReferViewHolder viewHolder = new ReferViewHolder();JSONObject data = (JSONObject)array.opt(position);JSONObject source = null;convertView = inflater.inflate(R.layout.refer_list_item, null);try {source = data.getJSONObject("source");} catch (JSONException e1) {e1.printStackTrace(); }viewHolder.refer_headicon = (ImageView) convertView.findViewById(R.id.refer_headicon);viewHolder.refer_nick = (TextView) convertView.findViewById(R.id.refer_nick);viewHolder.refer_hasimage = (ImageView) convertView.findViewById(R.id.refer_hasimage);viewHolder.refer_timestamp = (TextView) convertView.findViewById(R.id.refer_timestamp);viewHolder.refer_origtext = (TextView) convertView.findViewById(R.id.refer_origtext);viewHolder.refer_source = (TextView) convertView.findViewById(R.id.refer_source);if(data!=null){try {convertView.setTag(data.get("id"));viewHolder.refer_nick.setText(data.getString("nick"));viewHolder.refer_timestamp.setText(TimeUtil.converTime(Long.parseLong(data.getString("timestamp"))));viewHolder.refer_origtext.setText(data.getString("origtext"), TextView.BufferType.SPANNABLE);if(source!=null){viewHolder.refer_source.setText(source.getString("nick")+":"+source.getString("origtext"));viewHolder.refer_source.setBackgroundResource(R.drawable.source_bg);}//异步加载图片Drawable cachedImage = asyncImageLoader.loadDrawable(data.getString("head")+"/100",viewHolder.refer_headicon, new ImageCallback(){                    @Override                    public void imageLoaded(Drawable imageDrawable,ImageView imageView, String imageUrl) {                        imageView.setImageDrawable(imageDrawable);                    }                });if (cachedImage == null) {viewHolder.refer_headicon.setImageResource(R.drawable.icon);} else {viewHolder.refer_headicon.setImageDrawable(cachedImage);}if(data.getJSONArray("image")!=null){viewHolder.refer_hasimage.setImageResource(R.drawable.hasimage);}} catch (JSONException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}return convertView;}}static class ReferViewHolder {private ImageView refer_headicon;private TextView refer_nick;private TextView refer_timestamp;private TextView refer_origtext;private TextView refer_source;private ImageView refer_hasimage;}@Overridepublic boolean onItemLongClick(AdapterView<?> arg0, View arg1, int position,long arg3) {CharSequence [] items = null;try {items= new CharSequence[]{"转播","对话","点评","收藏",((JSONObject)array.opt(position)).getString("nick"),"取消"};} catch (JSONException e) {e.printStackTrace();}new AlertDialog.Builder(ReferActivity.this).setTitle("选项").setItems(items,new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {switch (which) {case 0: {}break;case 1: {}break;case 2: {}break;case 3: {}break;case 4: {}break;case 5: {}break;default:break;}}}).show();return false;}@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {JSONObject weiboInfo = (JSONObject)array.opt(position);Intent intent = new Intent(ReferActivity.this, WeiboDetailActivity.class);try {intent.putExtra("weiboid", weiboInfo.getString("id"));startActivity(intent);} catch (JSONException e) {e.printStackTrace();}}}


<?xml version="1.0" encoding="utf-8"?>


<?xml version="1.0" encoding="utf-8"?>
  • 大小: 52.8 KB
  • 查看图片附件

更多相关文章

  1. MySQL: 基于 android 远程连接
  2. android 数据库操作
  3. Android(安卓)保存浏览记录 SharedPreTools
  4. Android与(Servlet)服务器交互
  5. Android(安卓)ProtoBuf
  6. Android(安卓)Network数据存储
  7. Android(安卓)将asserts文件夹内文件写入SD卡中
  8. android sqlite 中文乱码。。麻烦详细点
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. Android(安卓)ImageView设置图片原理
  2. 通过Android(安卓)Studio 导出Jar包
  3. Android(安卓)事件分发机制(最新源码6.0
  4. 『原』在Linux下反编译Android(安卓).apk
  5. Android实现自动匹配关键字并且标红功能
  6. Android欢迎页面闪屏解决方法
  7. Android:Paint的setMaskFilter(MaskFilte
  8. Android(安卓)View系统解析(下)
  9. android自定义相机添加自定义水印
  10. RabbitMQ 基础概念进阶