Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android新浪微博客戶端(五)——主界面的TabHost和WeiboUtil

Android新浪微博客戶端(五)——主界面的TabHost和WeiboUtil

編輯:關於Android編程

 

一.TabHost的實現

之前的一篇文章講的就是TabHost,但是那個是用Fragment實現TabHost,這裡我就嘗試用另一種方式,繼承TabActivity的方式實現TabHost。
MainActivity.java

 

public class MainActivity extends TabActivity{
	private TabHost tabHost;

	private static final String HOME_TAB=home; 
	private static final String AT_TAB=at; 
	private static final String MSG_TAB=msg; 
	private static final String MORE_TAB=more; 

	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

	    tabHost = this.getTabHost();
	    TabSpec homeSpec=tabHost.newTabSpec(HOME_TAB).setIndicator(HOME_TAB).setContent(new Intent(this,HomeActivity.class));
	    TabSpec atSpec=tabHost.newTabSpec(AT_TAB).setIndicator(AT_TAB).setContent(new Intent(this,AtActivity.class));
	    TabSpec msgSpec=tabHost.newTabSpec(MSG_TAB).setIndicator(MSG_TAB).setContent(new Intent(this,MsgActivity.class));
	    TabSpec moreSpec=tabHost.newTabSpec(MORE_TAB).setIndicator(MORE_TAB).setContent(new Intent(this,MoreActivity.class));

	    tabHost.addTab(homeSpec);
	    tabHost.addTab(atSpec);
	    tabHost.addTab(msgSpec);
	    tabHost.addTab(moreSpec);

	    tabHost.setCurrentTabByTag(HOME_TAB);

	    RadioGroup radioGroup =  (RadioGroup) this.findViewById(R.id.main_radio);
	    final RadioButton rb=(RadioButton)this.findViewById(R.id.rb_home);
	    rb.setBackgroundResource(R.drawable.tabhost_press);

	    radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener()
		{
			public void onCheckedChanged(RadioGroup group, int checkedId)
			{
				rb.setBackgroundResource(R.drawable.tabhost_bg_selector);
				switch (checkedId)
				{
					case R.id.rb_home:
						tabHost.setCurrentTabByTag(HOME_TAB);
						break;

					case R.id.rb_at:
						tabHost.setCurrentTabByTag(AT_TAB);
						break;

					case R.id.rb_mess:
						tabHost.setCurrentTabByTag(MSG_TAB);
						break;

					case R.id.rb_more:
						tabHost.setCurrentTabByTag(MORE_TAB);
						break;

					default:
						break;
				}
			}
		});

	}
}

 

布局文件:main.xml

 



    android:background=#ffffff
    >
	
	 	 android:layout_width=fill_parent
	     android:layout_height=wrap_content 
	     android:visibility=gone/>
	<framelayout android:id="@android:id/tabcontent<!--{cke_protected}{C}%3C!%2D%2D%E6%B3%A8%E6%84%8F%E8%BF%99%E9%87%8C%20%2D%2D%3E--">
		 android:layout_width=fill_parent
	     android:layout_height=fill_parent/>
	
	    
	    
	    
	    	    	    
	
</framelayout>

 

其中的每一個Tab選項的內容都是一個Activity,然後再去針對性的寫每一個Tab下的內容。

二.WeiboAPI WeiboUtil.java

這個類的操作主要是發Http請求,然後解析數據,封裝到bean中。這裡我只寫好了 讀取所關注人的微博列表。下面的HttpRequest是我寫的一個HTTP請求的方法,因為經常涉及到Http請求,就把這部分代碼抽出來寫成一個方法。

WeiboUtil.java的全部代碼

 

package com.fangjie.weibo.util;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import com.fangjie.weibo.bean.User;
import com.fangjie.weibo.bean.Weibo;
public class WeiboUtil {

	public List getWeiboList(String token, long i) {
		List weibos=new ArrayList();
		String url=https://api.weibo.com/2/statuses/home_timeline.json;
		String params=access_token=+token+&max_id=+i;
		String result=HttpRequest(1, url, params);
		try {
			JSONObject json_res=new JSONObject(result);
			JSONArray json_weibos=json_res.getJSONArray(statuses);
			for(int j=0;j歡迎各位關注我的個人站點:http://fangjie.sinaapp.com/

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved