Question

J'ai problème dans la vue de l'onglet. Je dois montrer beaucoup vue de l'onglet de navigation. Par exemple . Dans le premier onglet « Ventes », Il liste toutes les ventes route.If l'utilisateur clique sur une route, il faut aller liste des détaillants comme sage de son déplacement dans le premier onglet. Il y a beaucoup de pages (vues) disponibles.

De mon onglet, il montre que dans la première vue, cela signifie quand il charge l'onglet, il m'a montré la liste des itinéraires de vente avec vue sur l'onglet. Lorsque je clique sur la route de vente, il affiche des détaillants, mais semble pas vue onglet.

Ceci est mon code: tabview.xml

   <?xml version="1.0" encoding="utf-8"?>

<TabHost android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost">
<LinearLayout android:id="@+id/LinearLayout01"
    android:orientation="vertical" android:layout_height="fill_parent"
    android:layout_width="fill_parent">
    <TabWidget android:id="@android:id/tabs"
        android:layout_height="wrap_content" android:layout_width="fill_parent"></TabWidget>
    <FrameLayout android:id="@android:id/tabcontent"
        android:layout_height="fill_parent" android:layout_width="fill_parent"></FrameLayout>
</LinearLayout>

Ceci est mon MainActivity:

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tabview);

    TabHost t = getTabHost();
    TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);

    TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
    TabSpec secondTabSpec = tabHost.newTabSpec("tid1");
    TabSpec thirdTabSpec = tabHost.newTabSpec("tid1");
    /** TabSpec setIndicator() is used to set name for the tab. */
    /** TabSpec setContent() is used to set content for a particular tab. */
    firstTabSpec.setIndicator("Sales").setContent(new Intent(this,SalesRouteActivity.class));
    secondTabSpec.setIndicator("Admin").setContent(new Intent(this,SalesRoutesTab.class));
    thirdTabSpec.setIndicator("Setting").setContent(new Intent(this,SalesRoutesTab.class));

    /** Add tabSpec to the TabHost to display. */
    tabHost.addTab(firstTabSpec);
    tabHost.addTab(secondTabSpec);
    tabHost.addTab(thirdTabSpec);
}

Ceci est mon SalesRouteActivity;

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.sales_routes);
    ArrayList<Object> routeList = getWmRoute();
    ArrayList<String> routhPath = new ArrayList<String>();
    for(int i = 0; i<routeList.size();i++){
        routhPath.add(((WMRoute) routeList.get(i)).getDescription());
    }

    ArrayAdapter ad = new ArrayAdapter(this,android.R.layout.simple_list_item_single_choice,routhPath);
    setListAdapter(ad);
    final ListView list=getListView();
    list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    list.setItemsCanFocus(true);
    list.setTextFilterEnabled(true);
    list.setItemChecked(positions,true);
    keyword = (String) list.getItemAtPosition(0);

}
   @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    menu.add("OK");
    menu.add("Cancel");
    return super.onCreateOptionsMenu(menu);
  }

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case 0:
        Intent showContent = new Intent(getApplicationContext(),ListRetailerActivity.class);
        Bundle bundle = new Bundle();
        bundle.putString("RouteName", keyword);
        showContent.putExtras(bundle);
        startActivity(showContent);
        return true;
    case 1:
        return true;
    default:
        return super.onOptionsItemSelected(item);
    }
}

Cela fait partie détaillant ListRetailerActivity;

   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.retailer_list);

    Bundle bundle = this.getIntent().getExtras();
    String routeName = bundle.getString("RouteName");
    setTitle(routeName + " - List Retailer ");

    ArrayList<Object> routeList = getWmRoute();
  //  ArrayList<String> routhPath = new ArrayList<String>();
    ArrayList<HashMap<String,String>> alist=new ArrayList<HashMap<String,String>>();

    for(int i = 0; i<routeList.size();i++){
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("RetailerCode", ((WMRoute) routeList.get(i)).getDescription());
        map.put("RetailerName", ((WMRoute) routeList.get(i)).getBusinessUnit());
        alist.add(map);
    }

    ListView list=getListView();
    sd = new SimpleAdapter(this,alist,R.layout.retalier_rows,new String[]{"RetailerCode","RetailerName"},new int[]{R.id.retailerCode,R.id.retailerName});
    list.setAdapter(sd);
    list.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
    list.setSelected(true);
    list.setSelection(0);
    list.setTextFilterEnabled(true);
    list.setItemsCanFocus(true);
    list.setTextFilterEnabled(true);
    list.setItemChecked(positions,true);
    keyword = ((WMRoute) routeList.get(0)).getBusinessUnit();
    //keyword = (String) list.getItemAtPosition(0);


}

Ici je dois montrer ListActivity et TabActivity.How nous pouvons mettre en œuvre.

entrer image description ici

Tous l'enfant besoin d'activité à la vue de l'onglet spectacle.

S'il vous plaît aidez-moi comment appeler d'autres xml pour la navigation avec vue sur l'onglet.

Merci à l'avance.

Était-ce utile?

La solution

Ok je suis fournirai une démo je l'espère vous aider ....

Firs de tous un ActivityGroup déclarer comme ceci SalesActivityGroup.java

public class SalesActivityGroup extends ActivityGroup {  

                // Keep this in a static variable to make it accessible for all the nested activities, lets them manipulate the view  
            public static SalesActivityGroup group;  

                // Need to keep track of the history if you want the back-button to work properly, don't use this if your activities requires a lot of memory.  
           private ArrayList<View> history;  

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

                      // Start the root activity withing the group and get its view  
                  View view = getLocalActivityManager().startActivity("Home", new  
                                                    Intent(this,SalesRouteActivity.class)  
                                                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
                                                    .getDecorView();  

                      // Replace the view of this ActivityGroup  
                  replaceView(view);  

               }  

            public void replaceView(View v) {  
                        // Adds the old one to history  
                history.add(v);  
                        // Changes this Groups View to the new View.  
                setContentView(v);  

            }  

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

           @Override  
            public void onBackPressed() {  
                SalesActivityGroup.group.back();  
                return;  
            }  

  }  

Après ce changement votre hôte (MainActivity) (un seul changement TabSpec: firstTabSpec qui est lié à la vente, je suppose) comme ça ...

public class Host extends TabActivity {

    public static Button btnRed;
    public static TabHost tabHost; 

    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.host);

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


            TabSpec salesTabSpec = tabHost.newTabSpec("tid1");

            Intent intent1 = new Intent(this, SalesActivityGroup.class);//SalesActivityGroup instead of SalesRouteActivity

            salesTabSpec.setContent(intent2);

             /* Add tabSpec to the TabHost to display. */
            tabHost.addTab(salesTabSpec);

        }
}

Par la suite chaque fois que vous voulez démarrer une nouvelle activité dans firstTab (salesTab) il vous suffit de vue sur le changement de ActivityGroup lié à cette salesTab

comme celui-ci (démarrer votre listRetailerActivity suivante façon) ...

Intent intent = new Intent(SalesRouteActivity.this, ListRetailerActivity.class);

            // Create the view using FirstGroup's LocalActivityManager  
            View view = SalesActivitytGroup.group.getLocalActivityManager()  
            .startActivity("", intent  
                    .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))  
                    .getDecorView();  

            // Again, replace the view  
            SalesActivityGroup.group.replaceView(view);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top