0

タブベースのアプリケーションがあります。1 つのタブに、ListActivity を拡張するクラスがあります。タブバーを保持したまま onClick がトリガーされたときに、別のアクティビティが必要です。タブバーを保持したまま、onClickで別のタブに移動したい。

このコードは機能しますが、タブ バーを非表示にします。

Intent intent = new Intent(getApplicationContext(),SectionContentList.class);   

// put values to intent which will get in the LoginSuccess    Activity
Log.d("",appState.MainCategories.get(position).get("feedUrl"));
intent.putExtra("FeedURL", appState.MainCategories.get(position).get("feedUrl"));

// Start LoginSuccess Activity
startActivity(intent);

下部のタブ バーを維持したまま、この新しいインテントに転送するにはどうすればよいですか?

4

3 に答える 3

2

タブ アクティビティ管理の例を示しました //タブ アクティビティの使用数を宣言しています package com.technosoft.Concina_Peru;

import android.app.TabActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TabHost;
import android.widget.TextView;

import com.technosoft.FirstTab.FirstTab;
import com.technosoft.FourthTab.FourthTab;
import com.technosoft.SecondTab.SecondTab;
import com.technosoft.ThirdTab.ThirdTab;

public class ConcinaPeruTabbar extends TabActivity {

    public static Context tabContext;
    public static TabHost tabHost;
    Context con;
    public static String var = "";

    public static Concina_Database db;

    private void setupTabHost() {
        tabHost = (TabHost) findViewById(android.R.id.tabhost);
        tabHost.setup();
    }   

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.starttab);
        tabContext = this;
        con = this.getApplicationContext();
        db = new Concina_Database(con);

        setupTabHost();
        setupTab(new TextView(this), "Inicio");
        setupTab(new TextView(this), "Recetas");
        setupTab(new TextView(this), "Favoritos");
        setupTab(new TextView(this), "Mas");

    }



    private void setupTab(final View view, final String tag) {
        View tabview = createTabView(tabHost.getContext(), tag);
        if(tag.equals("Inicio")){

            tabHost.addTab((tabHost.newTabSpec("Inicio")).setIndicator(
                    tabview).setContent(new Intent(this, FirstTab.class)));
        }
        if(tag.equals("Recetas")){

        tabHost.addTab((tabHost.newTabSpec("Recetas")).setIndicator(
                tabview).setContent(new Intent(this, SecondTab.class)));

        }
        if(tag.equals("Favoritos")){

            tabHost.addTab((tabHost.newTabSpec("Favoritos")).setIndicator(
                tabview).setContent(new Intent(this, ThirdTab.class)));

        }
        if(tag.equals("Mas")){

            tabHost.addTab((tabHost.newTabSpec("Mas")).setIndicator(
                tabview).setContent(new Intent(this, FourthTab.class)));

        }
    }

    private static View createTabView(final Context context, final String text) {
        View view = LayoutInflater.from(context)
                .inflate(R.layout.tabs_bg, null);
        TextView tv = (TextView) view.findViewById(R.id.tabsText);

        ImageView iv = (ImageView) view.findViewById(R.id.imageView1);
        if (text.equals("Inicio")) {
            iv.setBackgroundResource(R.drawable.tab_bg_image);
        }
        if (text.equals("Recetas")) {
            iv.setBackgroundResource(R.drawable.tab_bg_image1);
        }
        if (text.equals("Favoritos")) {
            iv.setBackgroundResource(R.drawable.tab_bg_image2);
        }
        if (text.equals("Mas")) {
            iv.setBackgroundResource(R.drawable.tab_bg_image3);
        }

        tv.setText(text);
        return view;
    }
}

//ここで最初のタブ アクティビティを定義します

public class FirstTab extends ActivityGroup{
    public static FirstTab group_FirstTab;

    private  ArrayList<View> history = new ArrayList<View>();
    ProgressDialog PD;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        group_FirstTab = this;
        View view = getLocalActivityManager().startActivity("CitiesAct", new
                Intent(FirstTab.this,Inicio.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)).getDecorView();
        replaceView(view);
    }
    public void replaceView(View view) {  

          history.add(view);
          setContentView(view);

      }
    public void RemoveView(){
         history.clear();

    }
    public void back(){
          if(history.size() > 1) {  
              history.remove(history.size()-1);  
              setContentView(history.get(history.size()-1));

          }else{
              finish();
          }
      }

     public boolean onKeyDown(int keyCode, KeyEvent event)
     {              
            if(keyCode == KeyEvent.KEYCODE_BACK){                   
                group_FirstTab.back();
                    return true;
            }
            return super.onKeyDown(keyCode, event);
     }


}

同様に別のタブアクティビティがあります..コードに従って、あるタブから別のタブへのアクティビティから別のタブへのアクティビティに移動したい

たとえば、0 個のタブ アクティビティを 1 個のタブ アクティビティに変更したい場合は、次を使用します。

tab activity Class tab_0{
    ConcinaPeruTabbar.tabHost.setCurrentTab(1); 
}

1 つのタブ アクティビティを simaar タブ アクティビティに移動する場合は、このビュー ビュー = を使用します。

  FirstTab.group_FirstTab.getLocalActivityManager().startActivity("CitiesAct", new         Intent(Inicio.this,Platos.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP).putExtra("platos", "Entradas")).getDecorView();
                    FirstTab.group_FirstTab.replaceView(view);
于 2012-07-14T05:53:43.983 に答える
1

タブバーを実装している場合は、TabActivityを拡張する1つのアクティビティ(MyTabActivityと呼びましょう)があります。このアクティビティのOnCreate(Bundle)方法では、最初にXMLでTabHostビューを取得することにより、タブバーを設定します。

TabHost tabHost = (TabHost) findViewById(R.id.tabhost);

タブの選択を動的に処理するために、TabHostへの参照を静的変数として保持できます。

public static final TabHost tabHost;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tabActivityLayout);
    tabHost = (TabHost) findViewById(R.id.tabhost);
    // ..... 
}

次に、[アクティビティ]タブの1つからTabHostにアクセスし、現在のタブを次のように設定できます。

MyTabActivity.tabHost.setCurrentTabByTag("the tag you affected to this activity");

また

MyTabActivity.tabHost.setCurrentTabByTag("the id you may have affected to it");

編集:次のようにTabHostへのタブに影響を与えるときにタグに影響を与えます:

TabHost.TabSpec tabSpec = tabHost.newTabSpec("The Tag").setIndicator(tabView).setContent(intent);
tabHost.addTab(tabSpec);
于 2012-07-13T21:36:18.757 に答える
0

多くのアクティビティ間で UI の一部を共有するには、フラグメントを使用する必要があります。

于 2012-07-13T20:48:44.000 に答える