我们可以对所有 Activity 使用单个 Action Bar 吗?
Can we to use the single Action Bar for all Activities?
我有 Action bar
和很多不同的 Activity
,它可以工作,但我不想在每个 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
的 class,它将扩展 AppCompatActivity
并将您想要在其他 Activity
中使用的代码和功能放在那里。然后在你的每个活动中,你将扩展 BaseActivity
而不是 AppCompatActivity
。通过这样做,您可以避免重复您的代码。请记住,您必须在每个 activity .xml
布局文件中放置 ActionBar
。
创建一个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,并为您的布局添加代码,然后将布局包含在您的所有活动中:
我有 Action bar
和很多不同的 Activity
,它可以工作,但我不想在每个 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
的 class,它将扩展 AppCompatActivity
并将您想要在其他 Activity
中使用的代码和功能放在那里。然后在你的每个活动中,你将扩展 BaseActivity
而不是 AppCompatActivity
。通过这样做,您可以避免重复您的代码。请记住,您必须在每个 activity .xml
布局文件中放置 ActionBar
。
创建一个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,并为您的布局添加代码,然后将布局包含在您的所有活动中: