阅读更多
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. android中Json数据保存方式
  2. android 打开本地相册,并将选择的照片显示到当前界面
  3. android:ImageView,访问网上图片并显示出来
  4. android 读取网络 xml 数据
  5. Android使用HttpURLConnection获取数据
  6. Android(安卓)SharedPreferences数据存储
  7. 浅谈Android(安卓)Architecture Components
  8. 转:Android之通信录中的联系人操作
  9. mybatisplus的坑 insert标签insert into select无参数问题的解决

随机推荐

  1. 如何临摹动漫人物?临摹绘画人物动漫教学!
  2. Ubuntu20.04服务器+Anaconda上创建Python
  3. element ui的form表单,一个input的值随着
  4. 搭建一个短视频APP可以用云服务器吗?如何
  5. JS高级ES6的6种继承方式
  6. webpack 配置文件webpack.config.js
  7. Python 函数装饰器应用教程
  8. 意派Epub360丨双12来袭,跟着淘宝学营销,海
  9. JavaScript高级之自定义异常
  10. Spring Security 核心过滤器链讲解