大家好,我有一個問題關於調用不同value.since標籤欄視圖標籤欄的事件得到單call.unable負荷爲class.for例如通過不同的值,我必須在標籤欄類上加載fri17,sat18,sun19標籤。它的內容爲第17天值,第18天值,第19天值,在通過日期17到列表類後必須在列表視圖中加載。我嘗試了更改監聽器的選項卡,仍然無法找到解決此問題的方法。任何人都可以幫助我。
package com.androidexample.tabbar;
import java.util.ArrayList;
import java.util.HashMap;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class TabBar extends TabActivity implements OnTabChangeListener{
public static String name;
static final String URL = "http://182.160.161.2/~mani/homeshow/web_serv/timeTableGetByRequest.php?event_id=14&sortBy=time";
static final String KEY_SONG = "date"; // parent node
static final String KEY_IDs = "timetable_date";
public HashMap<String, String> map;
public ArrayList<HashMap<String, String>> songsList;
String kid,ktit,kart,kdur,kurl,EID;
TabHost tabHost;
TabHost.TabSpec spec;
Intent intent;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.t2);
tabHost = getTabHost();
tabHost.setOnTabChangedListener(this);
songsList = new ArrayList<HashMap<String, String>>();
final NewProdCompleteXMLParser parser = new NewProdCompleteXMLParser();
String xml = parser.getXmlFromUrl(URL);
final Document doc = parser.getDomElement(xml);
NodeList nl = doc.getElementsByTagName(KEY_SONG);
for (int i = 0; i < nl.getLength(); i++) {
map = new HashMap<String, String>();
Element e = (Element) nl.item(i);
map.put(KEY_IDs, parser.getValue(e, KEY_IDs));
songsList.add(map);
kid=parser.getValue(e, KEY_IDs);
System.out.println("kid"+kid);
intent = new Intent().setClass(this, Tab1.class);
spec= tabHost.newTabSpec("hhj").setIndicator(kid)
.setContent(intent);
tabHost.addTab(spec);
tabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.tab_bg);
TextView tv = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
tv.setTextColor(Color.WHITE);
}
tabHost.getTabWidget().setCurrentTab(0);
tabHost.getTabWidget().getChildAt(0).setBackgroundResource(R.drawable.tab_hover);
}
public void onTabChanged(String tabId) {
name=songsList.get(tabHost.getCurrentTab()).get("timetable_date");
System.out.println("on tab changed"+name);
/************ Called when tab changed *************/
//********* Check current selected tab and change according images *******/
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
tabHost.getTabWidget().getChildAt(i).setBackgroundResource(R.drawable.tab_bg);
}
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundResource(R.drawable.tab_hover);
}
Log.i("tabs", "CurrentTab: "+tabHost.getCurrentTab());
while(tabHost.getCurrentTab()==1)
{
Intent intent1 = new Intent().setClass(this, Tab1.class);
spec.setContent(intent1);
//Add intent to tab
System.out.println("on tab changed"+name);
tabHost.getTabWidget().getChildAt(1).setBackgroundResource(R.drawable.tab_bg);
}
}
}
必須發送System.out.println("on tab changed"+name);
。這名VAL(ie.fri17..sat 18.on每個選項卡點擊旁邊TAB1類)
public class Tab1 extends Activity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tab1);
TabBar tb=new TabBar();
String name = tb.name;
System.out.println("on tab changed TT"+name);
}
}
表演什麼ü試過嗎? – keshav
我已經更新了。你可以參考@keshav – Jenefer