2016-02-11 2 views
0

Dans mon application, je gonfle la barre d'action dans l'activité Tabhost. Ici actionbar dosn't affichée même i gonflez en utilisant onCreateOptionsMenu(Menu menu) En follwing j'ai posté mon codeGonfle la barre d'action à partir du menu dans l'activité tabhost

TabhostActivity.xml

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_width="match_parent" android:layout_height="match_parent" 
    android:background="@color/appblue"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="20dp"/> 
     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"/> 
    </LinearLayout> 

</TabHost> 

Ceci est mon menuItem.xml (articles actionbar)

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

    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:appmunu="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context="com.after2.svirtzone.after2_gradle.UserDashBoardActivity"> 
    <item 
     android:id="@+id/action_notify" 
     android:icon="@drawable/mail_icon" 
     appmunu:showAsAction="always" 
     android:title="Notification" /> 
    <item 
     android:id="@+id/action_favourite" 
     android:icon="@drawable/favourite_icon" 
     appmunu:showAsAction="always" 
     android:title="Favourite" /> 

    <item 
     android:id ="@+id/action_navigation" 
     android:icon="@drawable/ic_menu" 
     appmunu:showAsAction = "always" 
     android:title="navigation" 
     android:layout_gravity="left"/> 
</menu> 

Cette est mon TabhostActivité

public class TabHostActivity extends TabActivity { 


    private Context context; 
    private static final String TAB_1_TAG = "AboutCollege"; 
    private static final String TAB_2_TAG = "Focus of Course"; 
    private static final String TAB_3_TAG = "Admision"; 
    private static final String TAB_4_TAG = "Contact Details"; 
    private static final String TAB_5_TAG = "Back"; 

    @Override 
    protected void onStart() { 
     super.onStart(); 
     AppActivityStatus.setActivityStarted(); 
     AppActivityStatus.setActivityContext(context); 
    } 

    @Override 
    protected void onPause() { 
     super.onPause(); 
     AppActivityStatus.setActivityStoped(); 

    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
     AppActivityStatus.setActivityStarted(); 
    } 

    @Override 
    protected void onStop() { 
     super.onStop(); 
     AppActivityStatus.setActivityStoped(); 
    } 
//here this the code for displaying the actionbar 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.menu_user_dash_boad, menu); 
     return true; 
    } 

    // delete the selected event from event list added here 
    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 

     switch (item.getItemId()) { 
      case R.id.action_notify: 
       return true; 

      case R.id.action_favourite: 
       return true; 
      case R.id.action_navigation: 

     } 

     return super.onOptionsItemSelected(item); 
    } 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.tab_host); 
     context = getApplicationContext(); 
     TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost); 
     TabHost.TabSpec tag5= tabHost.newTabSpec(TAB_5_TAG); 
     TabHost.TabSpec tag4= tabHost.newTabSpec(TAB_4_TAG); 
     TabHost.TabSpec tag3= tabHost.newTabSpec(TAB_3_TAG); 
     TabHost.TabSpec tag2= tabHost.newTabSpec(TAB_2_TAG); 
     TabHost.TabSpec tag1= tabHost.newTabSpec(TAB_1_TAG); 
     tag1.setIndicator("", getResources().getDrawable(R.drawable.college_hover)).setContent(new Intent(this,AdmissionActivity.class)); 
     tag2.setIndicator("", getResources().getDrawable(R.drawable.course)).setContent(new Intent(this, AboutCollegeActivity.class)); 
     tag3.setIndicator("", getResources().getDrawable(R.drawable.admission)).setContent(new Intent(this, AboutCollegeActivity.class)); 
     tag4.setIndicator("", getResources().getDrawable(R.drawable.contact)).setContent(new Intent(this, AboutCollegeActivity.class)); 
     tag5.setIndicator("", getResources().getDrawable(R.drawable.back)).setContent(new Intent(this, AboutCollegeActivity.class)); 
     tabHost.addTab(tag1); 
     tabHost.addTab(tag2); 
     tabHost.addTab(tag3); 
     tabHost.addTab(tag4); 



    } 
} 

Ici la barre d'action ne s'affiche pas d, mais toutes les autres activités autres que TabhostActivity cela a fonctionné parfaitement

Répondre

0

Définition d'une variable privée de appcompatActivity d'abord comme ces

private AppCompatActivity myact; 

puis ajouter ci-dessous les lignes à l'intérieur de votre méthode oncreate

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    myact.setSupportActionBar(toolbar); 

pour api au niveau inférieur 11

myact.getActionBar(toolbar); 

Je pense que cela devrait s olve the problem.See la cause première de ce problème est votre classe étend TabActivity pas AppcompatActivity ou Activity.So nous devons spécifiquement mentionner si afficher la barre d'action ou non. Je recommande d'utiliser Tabsliderview standard de l'Android Studio pour concevoir votre application, il est beaucoup plus facile à utiliser et est bien structuré.

+0

Si j'ajoute cette ligne, j'ai l'exception de pointeur nul sur cette ligne –

+0

quelle version de la bibliothèque de support utilisez-vous? Quelles sont les plates-formes qui utilisent eclipse ou studio? – abhishek

+0

je suis en utilisant android studio suupport bibliothèque v7 –