大家好,我有一个问题关于调用不同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