Android腾讯微薄客户端开发九:博主详情界面篇(广播,听众,收听)

 
点击顶部的标题栏,界面跳转到此博主的关注界面 
 
关注界面,此界面下面的对话和点评以及上面的广播,听众和收听丑了点,没时间了,今天时间比较紧,美化的事情交给你们了。 
Java代码  收藏代码
  1. public class UserInfoActivity extends Activity implements OnItemClickListener{  
  2.     private String currentNick;  
  3.     private String name;  
  4.     private String origtext;  
  5.     private String timestamp;  
  6.     private DataHelper dataHelper;  
  7.     private UserInfo user;  
  8.     private MyWeiboSync weibo;  
  9.     private Handler handler;  
  10.     private AsyncImageLoader asyncImageLoader;   
  11.     private UserInfoThread thread;  
  12.     private String weiboid;  
  13.     private String returnJsonStr;  
  14.     private JSONObject dataObj ;  
  15.     private ImageView user_headicon;  
  16.     private TextView user_nick;  
  17.     private TextView user_name;  
  18.     private TextView user_origtext;  
  19.     private TextView user_time;  
  20.     private TextView user_sex;  
  21.     private TextView user_age;  
  22.     private TextView user_location;  
  23.     private TextView user_verifyinfo;  
  24.     private Button user_back_btn;  
  25.     private Button user_dialog_btn;  
  26.     private Button user_message_btn;  
  27.     private GridView gridView;  
  28.       
  29.     @Override  
  30.     protected void onCreate(Bundle savedInstanceState){  
  31.         super.onCreate(savedInstanceState);  
  32.         setContentView(R.layout.user_info);  
  33.         setUpViews();//设置view  
  34.         setUpListeners();//设置listenter  
  35.         asyncImageLoader = new AsyncImageLoader();  
  36.         dataHelper = new DataHelper(UserInfoActivity.this);  
  37.         weibo = new MyWeiboSync();  
  38.         List<UserInfo> userList = dataHelper.GetUserList(false);  
  39.           
  40.         SharedPreferences preferences = getSharedPreferences("default_user",Activity.MODE_PRIVATE);  
  41.         String nick = preferences.getString("user_default_nick""");  
  42.           
  43.         if (nick != "") {  
  44.             user = dataHelper.getUserByName(nick,userList);  
  45.         }  
  46.           
  47.         weibo.setAccessTokenKey(user.getToken());  
  48.         weibo.setAccessTokenSecrect(user.getTokenSecret());  
  49.           
  50.         //获取从上一界面传递过来的数据  
  51.         Intent intent = getIntent();  
  52.         name = intent.getStringExtra("name");  
  53.         currentNick = intent.getStringExtra("nick");//昵称  
  54.         origtext = intent.getStringExtra("origtext");  
  55.         timestamp = intent.getStringExtra("timestamp");  
  56.         user_name.setText("@"+name);  
  57.         user_origtext.setText(origtext);  
  58.         user_time.setText(timestamp);  
  59.           
  60.         handler = new UserInfoHandler();  
  61.         thread = new UserInfoThread();  
  62.         thread.start();//开启一个线程获取数据  
  63.     }  
  64.       
  65.     private void setUpViews(){  
  66.         user_headicon = (ImageView) findViewById(R.id.user_headicon);  
  67.         user_nick = (TextView) findViewById(R.id.user_nick);  
  68.         user_name = (TextView) findViewById(R.id.user_name);  
  69.         user_origtext = (TextView) findViewById(R.id.user_origtext);  
  70.         user_time = (TextView) findViewById(R.id.user_time);  
  71.         user_sex = (TextView) findViewById(R.id.user_sex);  
  72.         user_age = (TextView) findViewById(R.id.user_age);  
  73.         user_location = (TextView) findViewById(R.id.user_location);  
  74.         user_verifyinfo = (TextView) findViewById(R.id.user_verifyinfo);  
  75.         user_back_btn = (Button) findViewById(R.id.user_back_btn);  
  76.         user_dialog_btn = (Button) findViewById(R.id.user_dialog_btn);  
  77.         user_message_btn = (Button) findViewById(R.id.user_message_btn);  
  78.         gridView = (GridView)findViewById(R.id.user_grid);  
  79.     }  
  80.       
  81.     private void setUpListeners(){  
  82.         gridView.setOnItemClickListener(this);  
  83.     }  
  84.       
  85.     class UserInfoThread extends Thread {  
  86.         @Override  
  87.         public void run() {  
  88.             returnJsonStr = weibo.getUserInfoByName(weibo.getAccessTokenKey(), weibo.getAccessTokenSecrect(), name);  
  89.             //通知handler处理数据  
  90.             Message msg = handler.obtainMessage();  
  91.             handler.sendMessage(msg);  
  92.         }  
  93.     }  
  94.       
  95.     class UserInfoHandler extends Handler {   
  96.         @Override  
  97.         public void handleMessage(Message msg){  
  98.             Drawable cachedImage;  
  99.             try {  
  100.                 dataObj = new JSONObject(returnJsonStr).getJSONObject("data");  
  101.                 cachedImage = asyncImageLoader.loadDrawable(dataObj.getString("head")+"/100",user_headicon, new ImageCallback(){  
  102.                     @Override  
  103.                     public void imageLoaded(Drawable imageDrawable,ImageView imageView, String imageUrl) {  
  104.                         imageView.setImageDrawable(imageDrawable);  
  105.                     }  
  106.                 });  
  107.                 if (cachedImage == null) {  
  108.                     user_headicon.setImageResource(R.drawable.icon);  
  109.                 } else {  
  110.                     user_headicon.setImageDrawable(cachedImage);  
  111.                 }  
  112.                 user_nick.setText(dataObj.getString("nick"));  
  113.                 user_sex.setText(dataObj.getInt("sex")==1?"男":"女");  
  114.                 if(dataObj.getInt("birth_year")!=0){  
  115.                     user_age.setText((Calendar.getInstance().get(Calendar.YEAR)-dataObj.getInt("birth_year"))+"岁");  
  116.                 }  
  117.                 user_location.setText(dataObj.getString("location"));  
  118.                 String verifyinfo = dataObj.getString("verifyinfo");  
  119.                 if(verifyinfo==null||"".equals(verifyinfo)){  
  120.                     user_verifyinfo.setText("这家伙很懒,没留什么");  
  121.                 }else{  
  122.                     user_verifyinfo.setText(verifyinfo);  
  123.                 }  
  124.                 final List<String> numsList = new ArrayList<String>();  
  125.                 numsList.add(dataObj.getString("tweetnum"));  
  126.                 numsList.add(dataObj.getString("fansnum"));  
  127.                 numsList.add(dataObj.getString("idolnum"));  
  128.                 gridView.setAdapter(new GridAdapter(UserInfoActivity.this, numsList));  
  129.             } catch (JSONException e) {  
  130.                 e.printStackTrace();  
  131.             }  
  132.         }  
  133.     }  
  134.       
  135.     class GridAdapter extends BaseAdapter {  
  136.         private Context context;  
  137.         private LayoutInflater inflater;  
  138.         List<String> numList;  
  139.           
  140.         public GridAdapter(Context context, List<String> numList) {  
  141.             super();  
  142.             this.context = context;  
  143.             this.numList = numList;  
  144.             this.inflater = LayoutInflater.from(context);  
  145.         }  
  146.   
  147.         @Override  
  148.         public int getCount() {  
  149.             return numList.size();  
  150.         }  
  151.   
  152.         @Override  
  153.         public Object getItem(int position) {  
  154.             return numList.get(position);  
  155.         }  
  156.   
  157.         @Override  
  158.         public long getItemId(int position) {  
  159.             return position;  
  160.         }  
  161.   
  162.         @Override  
  163.         public View getView(final int position, View convertView, ViewGroup parent){  
  164.             convertView = inflater.inflate(R.layout.userinfo_grid_item, null);  
  165.             TextView num = (TextView)convertView.findViewById(R.id.userinfo_grid_num);  
  166.             TextView title = (TextView)convertView.findViewById(R.id.userinfo_grid_title);  
  167.             ImageView image = (ImageView)convertView.findViewById(R.id.userinfo_grid_image);  
  168.             switch (position) {  
  169.             case 0:  
  170.                 num.setText(numList.get(0));  
  171.                 title.setText("广播");  
  172.                 image.setVisibility(View.VISIBLE);  
  173.                 break;  
  174.             case 1:  
  175.                 num.setText(numList.get(1));  
  176.                 title.setText("听众");  
  177.                 image.setVisibility(View.VISIBLE);  
  178.                 break;  
  179.             case 2:  
  180.                 num.setText(numList.get(2));  
  181.                 title.setText("收听");  
  182.                 break;  
  183.   
  184.             default:  
  185.                 break;  
  186.             }  
  187.             return convertView;  
  188.         }  
  189.     }  
  190.   
  191.     @Override  
  192.     public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3){  
  193.         switch (position) {  
  194.         case 0:  
  195.             Intent intent = new Intent(UserInfoActivity.this,TweetsActivity.class);  
  196.             intent.putExtra("name", name);  
  197.             intent.putExtra("nick",currentNick);  
  198.             startActivity(intent);  
  199.             break;  
  200.         case 1:  
  201.             Intent intent2 = new Intent(UserInfoActivity.this,FansActivity.class);  
  202.             intent2.putExtra("name", name);  
  203.             intent2.putExtra("nick",currentNick);  
  204.             startActivity(intent2);  
  205.             break;  
  206.         case 2:  
  207.             Intent intent3 = new Intent(UserInfoActivity.this,IdolActivity.class);  
  208.             intent3.putExtra("name", name);  
  209.             intent3.putExtra("nick",currentNick);  
  210.             startActivity(intent3);  
  211.             break;  
  212.         default:  
  213.             break;  
  214.         }  
  215.           
  216.     }  
  217. }  


Java代码  收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#c0c8d0"  
  3.     xmlns:android="http://schemas.android.com/apk/res/android">  
  4.     <RelativeLayout android:id="@+id/user_top" android:paddingTop="5.0dip" android:layout_width="fill_parent" android:layout_height="60.0dip" android:layout_alignParentTop="true" android:layout_centerHorizontal="true">  
  5.         <ImageView android:id="@+id/user_headicon" android:layout_marginLeft="8.0dip" android:layout_width="45.0dip" android:layout_height="45.0dip" android:layout_alignParentLeft="true"/>  
  6.         <TextView android:id="@+id/user_nick" android:layout_marginLeft="5.0dip" android:layout_width="wrap_content" android:layout_toRightOf="@id/user_headicon" android:textColor="#384050"  
  7.             android:layout_height="wrap_content"/>  
  8.         <TextView android:id="@+id/user_name" android:layout_width="wrap_content" android:layout_marginLeft="10.0dip" android:layout_toRightOf="@id/user_headicon" android:textColor="#687888"  
  9.             android:layout_height="wrap_content" android:layout_below="@id/user_nick"/>  
  10.     </RelativeLayout>  
  11.     <LinearLayout android:paddingLeft="10.0dip" android:paddingRight="10.0dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:layout_below="@id/user_top">  
  12.         <ImageView android:background="#a0b0b0" android:layout_width="fill_parent" android:layout_height="1.0dip" android:scaleType="fitCenter"/>  
  13.         <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10.0dip">  
  14.             <GridView android:gravity="center" android:listSelector="@drawable/listitem_selector" android:id="@+id/user_grid" android:background="@drawable/userinfo_grid_bg" android:layout_width="fill_parent" android:layout_height="wrap_content" android:numColumns="3"/>  
  15.         </RelativeLayout>  
  16.         <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10.0dip" android:background="@drawable/panel_bg">  
  17.             <TextView android:id="@+id/user_sex" android:layout_marginLeft="5.0dip" android:layout_alignParentLeft="true" android:layout_width="wrap_content"  android:textSize="12.0sp" android:textColor="#788080"  
  18.                 android:layout_height="wrap_content"/>  
  19.             <TextView android:id="@+id/user_age" android:layout_toRightOf="@id/user_sex" android:layout_width="wrap_content"  android:textSize="12.0sp" android:textColor="#788080"  
  20.                 android:layout_height="wrap_content"/>  
  21.             <TextView  android:id="@+id/user_location" android:layout_toRightOf="@id/user_age" android:layout_width="wrap_content" android:textSize="12.0sp" android:textColor="#788080"  
  22.                 android:layout_height="wrap_content"/>  
  23.             <TextView  android:id="@+id/user_verifyinfo" android:layout_marginLeft="5.0dip" android:layout_alignParentLeft="true" android:layout_below="@id/user_sex" android:layout_width="fill_parent" android:textSize="12.0sp" android:textColor="#788080"  
  24.                 android:layout_height="wrap_content"/>  
  25.         </RelativeLayout>  
  26.         <RelativeLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginTop="10.0dip" android:background="@drawable/panel_bg">  
  27.             <TextView android:text="最新广播:" android:layout_width="fill_parent" android:layout_marginLeft="5.0dip" android:textSize="12.0sp" android:textColor="#788080"  
  28.                 android:layout_height="wrap_content"/>  
  29.             <TextView android:id="@+id/user_time" android:layout_width="wrap_content" android:layout_marginLeft="3.0dip" android:layout_marginTop="10.0dip" android:textSize="8.0sp" android:textColor="#788080"  
  30.                 android:layout_height="wrap_content" android:layout_alignParentRight="true"/>  
  31.             <TextView android:id="@+id/user_origtext" android:layout_width="fill_parent" android:layout_marginLeft="5.0dip" android:textSize="12.0sp" android:textColor="#788080"   
  32.                 android:layout_height="wrap_content" android:layout_below="@id/user_time" android:layout_alignParentLeft="true"/>  
  33.         </RelativeLayout>  
  34.     </LinearLayout>  
  35.     <RelativeLayout android:layout_width="fill_parent" android:layout_height="40.0dip" android:layout_alignParentBottom="true">  
  36.         <Button android:id="@+id/user_back_btn" android:layout_width="40.0dip" android:drawableTop="@drawable/btn_back_selector" android:background="@drawable/bottom_back_bg"  
  37.             android:layout_height="40.0dip"  android:layout_alignParentLeft="true"/>  
  38.         <LinearLayout android:id="@+id/widget41" android:layout_marginLeft="60.0dip" android:layout_alignParentBottom="true"  
  39.             android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_toRightOf="@id/user_back_btn">  
  40.             <ImageView android:background="#f8f8f8" android:layout_width="1.0dip" android:layout_height="20.0dip" android:scaleType="fitCenter"/>  
  41.             <Button android:id="@+id/user_dialog_btn" android:layout_width="wrap_content" android:background="@drawable/bottom_bar_bg"  
  42.                 android:layout_height="wrap_content" android:text="对话"/>  
  43.             <ImageView android:background="#f8f8f8" android:layout_width="1.0dip" android:layout_height="20.0dip" android:scaleType="fitCenter"/>  
  44.             <Button android:id="@+id/user_message_btn" android:layout_width="wrap_content" android:background="@drawable/bottom_bar_bg"  
  45.                 android:layout_height="wrap_content" android:text="点评"/>  
  46.         </LinearLayout>  
  47.         <Button android:id="@+id/user_tohome_btn" android:layout_width="40.0dip"  
  48.             android:layout_height="40.0dip" android:drawableTop="@drawable/btn_home_selector" android:background="@drawable/bottom_home_bg" android:layout_alignParentRight="true"/>  
  49.     </RelativeLayout>  
  50. </RelativeLayout>  


Java代码  收藏代码
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="center" android:paddingTop="3.0dip" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content">  
  3.     <LinearLayout android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content">  
  4.         <TextView android:id="@+id/userinfo_grid_num" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#586068"/>  
  5.         <TextView android:id="@+id/userinfo_grid_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#98a0a0"/>  
  6.     </LinearLayout>  
  7.     <ImageView android:id="@+id/userinfo_grid_image" android:src="#d0d0d8" android:visibility="invisible" android:layout_width="1.0dip" android:layout_height="30.0dip" android:layout_marginLeft="30.0dip"/>  
  8. </LinearLayout>  
原文地址:https://www.cnblogs.com/afly/p/2360246.html