UserInfo.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. package com.ouling.weibo;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.net.Uri;
  5. import android.os.Bundle;
  6. import android.os.Handler;
  7. import android.os.Message;
  8. import android.text.TextUtils;
  9. import android.util.Log;
  10. import android.view.View;
  11. import android.view.View.OnClickListener;
  12. import android.widget.Button;
  13. import android.widget.LinearLayout;
  14. import android.widget.TextView;
  15. import android.widget.Toast;
  16. import com.ouling.weibo.OAuth.OAuthConstant;
  17. import com.ouling.weibo.basic.User;
  18. import com.ouling.weibo.basic.Weibo;
  19. import com.ouling.weibo.basic.WeiboException;
  20. import com.ouling.weibo.util.ImageRel;
  21. import com.ouling.weibo.util.InfoHelper;
  22. import com.ouling.weibo.util.AsyncImageView;
  23. import com.ouling.weibo.util.HighLightTextView;
  24. //用户资料
  25. public class UserInfo extends Activity implements OnClickListener {
  26. private static final Uri PROFILE_URI = Uri.parse(HighLightTextView.MENTIONS_SCHEMA);
  27. private TextView tv_failed;
  28. private TextView tv_name;
  29. private TextView tv_url;
  30. private TextView tv_decsription;
  31. private TextView tv_location;
  32. private LinearLayout ll;
  33. private LinearLayout userinfo_waitingView;
  34. private AsyncImageView userinfo_pic;
  35. private String cid;
  36. private User user;
  37. private Handler handler = new Handler() {
  38. @Override
  39. public void handleMessage(Message msg) {
  40. super.handleMessage(msg);
  41. switch (msg.what) {
  42. case InfoHelper.LOADING_DATA_FAILED:
  43. Toast.makeText(UserInfo.this, "获取信息失败", Toast.LENGTH_LONG)
  44. .show();
  45. tv_failed.setVisibility(View.VISIBLE);
  46. tv_failed.setText("获取用户资料失败");
  47. userinfo_waitingView.setVisibility(View.GONE);
  48. UserInfo.this.finish();
  49. break;
  50. case InfoHelper.LOADING_DATA_COMPLETED:
  51. ll.setVisibility(View.VISIBLE);
  52. userinfo_waitingView.setVisibility(View.GONE);
  53. tv_name.setText(user.getScreenName());
  54. tv_decsription
  55. .setText("介绍: "
  56. + (TextUtils.isEmpty(user.getDescription()) ? "无" : user
  57. .getDescription()));
  58. tv_url.setText("博客: "
  59. + (user.getURL() != null ? user.getURL().toString() : "无"));
  60. tv_location.setText(user.getLocation());
  61. userinfo_pic.setUrl(user.getProfileImageURL().toString());
  62. btn_follows.setText("粉丝数 " + user.getFollowersCount());
  63. btn_friends.setText("关注数 " + user.getFriendsCount());
  64. btn_weibo.setText("微博数 " + user.getStatusesCount());
  65. Toast.makeText(UserInfo.this, "获取用户资料完成", Toast.LENGTH_LONG)
  66. .show();
  67. break;
  68. }
  69. }
  70. };
  71. private Button btn_follows;
  72. private Button btn_friends;
  73. private Button btn_weibo;
  74. @Override
  75. public void onCreate(Bundle savedInstanceState) {
  76. super.onCreate(savedInstanceState);
  77. setContentView(R.layout.userinfo);
  78. System.setProperty("weibo4j.oauth.consumerKey", Weibo.CONSUMER_KEY);
  79. System.setProperty("weibo4j.oauth.consumerSecret",
  80. Weibo.CONSUMER_SECRET);
  81. cid = null;
  82. Bundle bundle = getIntent().getExtras();
  83. Uri uri = getIntent().getData();
  84. if (bundle != null)
  85. cid = bundle.getString("cid");
  86. if(uri != null && PROFILE_URI.getScheme().equals(uri.getScheme())) {
  87. cid = uri.getQueryParameter(HighLightTextView.PARAM_UID);
  88. }
  89. if (TextUtils.isEmpty(cid))
  90. cid = OAuthConstant.getInstance().getAccessToken().getUserId() + "";
  91. userinfo_pic = (AsyncImageView) findViewById(R.id.userinfo_pic);
  92. userinfo_pic.setProgressBitmaps(ImageRel.getBitmaps_avatar(this));
  93. ll = (LinearLayout) findViewById(R.id.userinfo_ll);
  94. tv_name = (TextView) findViewById(R.id.userinfo_tv_name);
  95. tv_decsription = (TextView) findViewById(R.id.userinfo_tv_description);
  96. tv_url = (TextView) findViewById(R.id.userinfo_tv_url);
  97. tv_location = (TextView) findViewById(R.id.userinfo_tv_location);
  98. userinfo_waitingView = (LinearLayout) findViewById(R.id.userinfo_waitingView);
  99. tv_failed = (TextView) findViewById(R.id.userinfo_failed);
  100. btn_follows = (Button) findViewById(R.id.userinfo_btn_follows);
  101. btn_friends = (Button) findViewById(R.id.userinfo_btn_friends);
  102. btn_weibo = (Button) findViewById(R.id.userinfo_btn_weibo);
  103. findViewById(R.id.userinfo_btn_refresh).setOnClickListener(this);
  104. btn_follows.setOnClickListener(this);
  105. btn_friends.setOnClickListener(this);
  106. btn_weibo.setOnClickListener(this);
  107. new Thread(new Runnable() {
  108. @Override
  109. public void run() {
  110. refreshUserInfo();
  111. }
  112. }).start();
  113. }
  114. @Override
  115. public void onClick(View v) {
  116. switch (v.getId()) {
  117. case R.id.userinfo_btn_follows:
  118. Intent intent1 = new Intent(this, FriendsOrFollowsList.class);
  119. intent1.putExtra("flag", true);
  120. intent1.putExtra("cid", cid);
  121. startActivity(intent1);
  122. break;
  123. case R.id.userinfo_btn_friends:
  124. Intent intent2 = new Intent(this, FriendsOrFollowsList.class);
  125. intent2.putExtra("flag", false);
  126. intent2.putExtra("cid", cid);
  127. startActivity(intent2);
  128. break;
  129. case R.id.userinfo_btn_weibo:
  130. Intent intent3 = new Intent(this, UserWeibo.class);
  131. intent3.putExtra("cid", cid);
  132. startActivity(intent3);
  133. break;
  134. case R.id.userinfo_btn_refresh:
  135. refreshUserInfo();
  136. break;
  137. }
  138. }
  139. protected void refreshUserInfo() {
  140. try {
  141. Weibo weibo = OAuthConstant.getInstance().getWeibo();
  142. user = weibo.showUser(cid);
  143. handler.sendEmptyMessage(InfoHelper.LOADING_DATA_COMPLETED);
  144. } catch (WeiboException e) {
  145. e.printStackTrace();
  146. handler.sendEmptyMessage(InfoHelper.LOADING_DATA_FAILED);
  147. }
  148. }
  149. }