2016-09-26 8 views
0

Ich bin Neuling in Android bitte hilf mir. Ich habe eine Klasse erstellt, die meinen Aktionsleisten-Code enthält, den ich in allen Aktivitäten verwenden möchte. Wie kann ich es in meinen Aktivitäten laufen/nennen? Danke.android benutzerdefinierte actionbar mit?

ActionBar Klasse:

public class CustomActionBar extends Activity { 

     public void actionbarMethod() { 

      LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      View actionBarView = inflater.inflate(R.layout.custom_actionbar, null); 

      ActionBar actionBar = getActionBar(); 

      actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); 
      actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
      actionBar.setCustomView(actionBarView, new ActionBar.LayoutParams 
        (ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); 

      final DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
      ImageView btnmenu = (ImageView) findViewById(R.id.btnmenu); 

      btnmenu.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View arg0) { 

        if (drawerLayout.isDrawerOpen(Gravity.RIGHT)) { 
         drawerLayout.closeDrawer(Gravity.RIGHT); 
        } else { 
         drawerLayout.openDrawer(Gravity.RIGHT); 

        } 

       } 
      }); 
     } 
    } 

** ActionBar XML Layout: **

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="50dp" 
android:background="#36abcb" > 


<ImageView 
android:id="@+id/btnmenu" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:layout_alignParentRight="true" 
android:layout_alignParentTop="true" 
android:padding="8dip" 
android:src="@drawable/ic_drawer" 
android:background="#36abcb"/> 
<TextView 
android:id="@+id/title" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_alignParentBottom="true" 
android:layout_marginRight="8dp" 
android:layout_toLeftOf="@+id/btnmenu" 
android:textSize="18dip" /> 

</RelativeLayout> 

Antwort

0

Machen Sie alle Ihre Aktivitäten Subklassen von CustomActionBar.

ETA: sie müssen auch actionbarMethod() in ihrer onCreate()

public class MyActivity extends CustomActionBar { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.myactivityview); 
     actionbarMethod(); 
     // ... more code 
    } 

} 
+0

tanx nennen. es funktionierte gut, aber wenn ich auf Menü-Taste in der Haupttätigkeit klicke, funktioniert es, aber in anderen Tätigkeiten stürzt es ab. Wie kann ich es beheben? –

+0

Sie müssen die Menüfunktionen von Ihrer Hauptaktivität in CustomActionBar verschieben. –

+0

I definiert die Menü-Taste und die Klick-Listener in CustomActionBar Aktivität, aber es stürzt immer noch –