我创建了一个BaseActivity
,它正在扩展所有其他活动,但现在我不知道如何在那里创建一个操作栏。我在尝试,但没有运气。任何帮助,将不胜感激。
以下是我的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);
}
}
答案 0 :(得分:2)
你可以通过多种方式实现它。
例如,您可以在每个布局中使用Toolbar
。像这样:
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();
//.....
}
}
在您的活动布局中,您可以放置工具栏:
布局/ 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>