我的例子中有3个类:A类,主要活动.A类调用startActivityForResult:
Intent intent = new Intent(this, ClassB.class);
startActivityForResult(intent, "STRING");
Run Code Online (Sandbox Code Playgroud)
B类,这个类是一个TabActivity:
Intent intent = new Intent(this, ClassC.class);
tabHost.addTab...
Run Code Online (Sandbox Code Playgroud)
C类,这个类是一个常规的Activity:
Intent intent = this.getIntent();
intent.putExtra("SOMETHING", "EXTRAS");
this.setResult(RESULT_OK, intent);
finish();
Run Code Online (Sandbox Code Playgroud)
onActivityResult在类A中调用,但resultCode RESULT_CANCELED代替,RESULT_OK返回的intent为null.如何从TabHost中的Activity返回一些内容?
我意识到问题是我的C类实际上是在B类中运行,而B类是返回RESULT_CANCELED到A类的.我只是不知道一个解决方法.
我想用我的标签来windowSoftInputMode为每个标签设置不同的属性.当从一个单独的活动完成对标签的所有处理时,如何从java类访问此属性?
有没有办法从java代码访问这个清单属性?
我正在尝试学习如何Fragment在android中使用s.当我在Android中调用fragmentnew时,我正试图删除旧的fragment.
我想创建标签而不扩展TabActivity.(原因是TabActivity无法处理自定义标题栏).我有
public class startTab extends Activity {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout);
Resources res = getResources();
LocalActivityManager mlam = new LocalActivityManager(this, false);
TabHost tabHost = (TabHost) findViewById(R.id.tabhost);
tabHost.setup(mlam);
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, Show1.class);
spec = tabHost.newTabSpec("Items").setIndicator("Items", res.getDrawable(R.drawable.items32_ldpi)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, Show2.class);
spec = tabHost.newTabSpec("Users").setIndicator("Users",res.getDrawable(R.drawable.user32_ldpi)).setContent(intent);
tabHost.addTab(spec);
}
Run Code Online (Sandbox Code Playgroud)
}
我得到的错误是
07-02 07:11:12.715: ERROR/AndroidRuntime(411):
Caused by: java.lang.IllegalStateException: Activities can't be added until the containing group has been created.
Run Code Online (Sandbox Code Playgroud)
视图的xml是
<?xml version="1.0" encoding="utf-8"?> …Run Code Online (Sandbox Code Playgroud) 我有一个主要的活动,这里是片段活动我在B片段中设置两个片段A和B两个片段当用户点击按钮时我有一个按钮我想将片段B更改为片段C.但是上面的标签是可见的......
如何在标签内实现替换片段?
非常感谢任何解决方案.
android android-tabhost android-fragments fragment-tab-host android-nested-fragment
我有一个活动,其中包含一组TabSpec,每个TabSpec都有一个listview,其中包含选项卡要显示的项目.创建每个TabSpec时,我设置一个图标显示在选项卡标题中.
TabSpecs以这种方式在一个setupTabs()循环创建适当数量的选项卡的方法中创建:
TabSpec ts = mTabs.newTabSpec("tab");
ts.setIndicator("TabTitle", iconResource);
ts.setContent(new TabHost.TabContentFactory(
{
public View createTabContent(String tag)
{
...
}
});
mTabs.addTab(ts);
Run Code Online (Sandbox Code Playgroud)
有几个实例我希望能够在执行程序期间更改每个选项卡中显示的图标.目前我正在删除所有选项卡,并再次调用上面的代码来重新创建它们.
mTabs.getTabWidget().removeAllViews();
mTabs.clearAllTabs(true);
setupTabs();
Run Code Online (Sandbox Code Playgroud)
有没有办法替换正在显示的图标而不删除并重新创建所有选项卡?
当此选项卡是当前选项卡时,我正试图找到能够在选项卡上触发onclick事件的方法.
我确实尝试过这种方式(在其他几种方式中)并没有成功.
public void onTabChanged(String tabId) {
Log.d(this.getClass().getName(), ">>>>>>>>>>>>>>>>>>>>>>>> tabId: " + tabId);
int tabs = getTabWidget().getChildCount();
Log.d(this.getClass().getName(), "tabs: " + tabs);
for(int i=0; i<tabs; i++){
View tab = getTabWidget().getChildAt(i);
if(i==tabHost.getCurrentTab()){
Log.d(this.getClass().getName(), "tab: " + i);
tab.setOnClickListener(this);
}else{
tab.setOnClickListener(null);
tab.getOnFocusChangeListener();
}
}
}
Run Code Online (Sandbox Code Playgroud)
关键是我设置为onClickListener,null所以下次单击选项卡时没有任何反应,但我希望有正常的选项卡行为.
外面有什么想法吗?
我正在研究Android应用程序,我想使用3个选项卡为每个选项卡使用Fragments进行导航,但我不知道如何创建这样做的结构.
我想分别添加每个片段,因为每个片段都不同,但我不知道在FragmentActivity中将它们添加到何处.
我有这些文件.
tabs_layout.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_height="match_parent"
android:layout_width="match_parent">
<TabHost android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<FrameLayout
android:id="@+id/tabRateAPet"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<FrameLayout
android:id="@+id/tabViewMyRates"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<FrameLayout
android:id="@+id/tabViewGlobalRates"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
TabsMain.java
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
public class MainTabsActivity extends FragmentActivity {
public static final String RATE_A_PET = "Rate a Pet";
public static final String MY_RATES = "My Rates";
public static final …Run Code Online (Sandbox Code Playgroud) android android-tabhost android-fragments android-fragmentactivity
是否可以将Android Tabhost设置为类似iPhone的样式?如果没有,是否有任何开源代码可以显示如何为Android创建底部选项卡?
alt text http://images.appshopper.com/screenshots/305/690205_2.jpg 
我在我的应用程序中使用TabHost,我在我的应用程序中使用了四个选项卡,当我选择特定选项卡而未选中时,我想在TabHost中使用不同的图像.我需要为每个特定标签使用不同的图像.
当我选择任何标签时,图像有点亮,当我切换到另一个标签时,明亮的图像变为灰色阴影.
我已经实现了TabHost,但我不知道如何更改TabHost中的图像.
任何人都可以帮助我.
谢谢,大卫