是否可以更新TabWidget图标/指示器?如果是这样,如何通过意图创建TabContent?下面感谢答案动态更新TabWidget图标?
编辑到@Bart
通用代码:
MainActivity:
public class TestActivity extends TabActivity {
public int i;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//TabHost mTabHost = (TabHost) findViewById(android.R.id.tabhost);
TabHost mTabHost = getTabHost();
mTabHost.addTab(mTabHost.newTabSpec("tab1").setContent(
new Intent(this, OneActivity.class)).setIndicator("One"));
mTabHost.addTab(mTabHost.newTabSpec("tab2").setContent(
new Intent(this, TwoActivity.class)).setIndicator("Two"));
changeTitle(0, 20);
}
public void changeTitle(int cnt, int i){
View v = getTabWidget().getChildAt(cnt);
TextView tv = (TextView) v.findViewById(android.R.id.title);
tv.setText("One ("+i+")");
}
}
OneActivity(ChildActivity):
public class OneActivity extends Activity {
TextView tv;
Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.one);
tv = (TextView) findViewById(R.id.tv);
btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int i = Integer.parseInt((String) tv.getText());
i++;
tv.setText(""+i);
TestActivity parent = OneActivity.this.getParent();
parent.changeTitle(0,i);
}
});
}
}
我想显示在该标签的标题数量
注意,您的“Android SDK源代码”是针对某些特定版本的ImageView的,而且代码可能改变,所以你不想依赖那个实现。 – CommonsWare 2010-09-01 14:37:26
如何将OneActivity中的值传递给MainActivity(扩展TabActivity)? – 2010-09-01 14:44:15
我同意使用getChildAt()可能无法在每个SDK上工作。我写到它很棘手。自从我测试它以后,它将在1.6-2.1版本中正常工作。 @Sameer Segal:您可以通过调用TabActivity mainActivity =(TabActivity)oneActivity.getParent();来从OneActivity获取对MainActivity的引用。 – bart 2010-09-02 07:04:44