Android 如何在扩展到其他活动的活动中创建actionBar?

Android 如何在扩展到其他活动的活动中创建actionBar?,android,android-actionbar,android-appcompat,android-toolbar,Android,Android Actionbar,Android Appcompat,Android Toolbar,我已经创建了一个BaseActivity,它正在扩展所有其他活动,但现在我不知道如何在那里创建一个操作栏。我试过了,但运气不好。任何帮助都将不胜感激 以下是myBaseActivity的代码,它扩展了所有其他活动: import android.app.ActionBar; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem;

我已经创建了一个
BaseActivity
,它正在扩展所有其他活动,但现在我不知道如何在那里创建一个操作栏。我试过了,但运气不好。任何帮助都将不胜感激

以下是my
BaseActivity
的代码,它扩展了所有其他活动:

import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public abstract class BaseActivity extends Activity {

    ActionBar actionBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(getLayoutResourceId());      
        actionBar = getActionBar();

    }

    protected abstract int getLayoutResourceId();

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onBackPressed() {
        // TODO Auto-generated method stub
        super.onBackPressed();
        overridePendingTransition(R.anim.slide_in_back, R.anim.slide_out_back);
    }

}

你可以通过多种方式实现它

例如,可以在每个布局中使用。大概是这样的:

public abstract class BaseActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(getLayoutResourceId());     

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

       setupActionBar();
       //....

   }

   //...
}

public MyActivity extends BaseActivity{

    @Override    
    protected int getLayoutResourceId(){
         return R.layout.mylayout;
    }

    @Override
    protected void setupActionBar(){
        ActionBar actionBar = getSupportActionBar();
        //.....
    }

}
在活动布局中,您可以放置工具栏:

layout/mylayout.xml

<LinearLayout ....>

   <android.support.v7.widget.Toolbar
       android:layout_height="wrap_content"
       android:layout_width="match_parent"
       android:id="@+id/myToolbar"
       android:theme="@style/MyToolbarTheme"
       app:popupTheme="@style/MyToolbarPopupTheme" />



</LinearLayout>


使用AppCompatActivity而不是Activity,并在布局中使用工具栏。然后可以在setContentView(getLayoutResourceId())之后的onCreate方法中进行设置;调用。您在布局中使用工具栏是什么意思。我需要创建自定义工具栏吗?我是android开发新手。我已经创建了一个工具栏,但是我不知道如何在BaseActivity中找到工具栏的id,因为我没有在那里设置任何活动的内容视图。对不起。你说得对。我刚刚更新了我的答案。>id位于工具栏的布局中。抱歉,Gabriel,我真的是个新手,我创建了一个新布局并将其命名为app_bar,在那里我实现了工具栏,但我仍然无法在BaseActivity中找到该工具栏的id。我做错什么了吗?