[英]Can we to use the single Action Bar for all Activities?
我有Action bar
和许多不同的Activity
,它可以正常工作,但是我不想在每个Activity
添加代码。 如何在一个Activity
中添加一个可以在每个Activity
? 我希望所有活动都只能在一个Activity
编写一个代码。
我的主要活动:
package ua.in.masterpc.technoguide;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.widget.ImageButton;
public class IconsMain extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_icons_main);
ImageButton myImageButton = findViewById(R.id.iconPC);
myImageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentLoadNewActivity = new Intent(IconsMain.this, PCProblems.class);
startActivity(intentLoadNewActivity);
}
});
}
@Override//start menu code
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.bar_menu, menu);
return true;
}//end menu code
}
感谢您的回答!
您可以创建名为BaseActivity
类,该类将扩展AppCompatActivity
,并在其中放置要在其他所有Activity
使用的代码和功能。 然后,在每个活动中,您都将扩展BaseActivity
而不是AppCompatActivity
。 这样可以避免重复代码。 请记住,您必须将ActionBar
放入每个活动.xml
布局文件中。
在其中创建一个baseActivity
添加函数以初始化工具栏并根据需要对其进行自定义
open class BaseActivity : AppCompatActivity() {
protected fun initializeToolbar() {
val toolbar: Toolbar = findViewById(R.id.toolbar)
setSupportActionBar(toolbar)
}
}
创建toolbar_main.xml
在将toolbar_main.xml
包括为<include layout="@layout/toolbar_main" />
后,以任何活动扩展baseActivity
class MainActivity : BaseActivity(){
}
并调用您在baseActivity
创建的函数。
创建一个布局,例如toolbar_layout,并添加该布局的代码,然后将该布局包括在所有活动中:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.