【问题标题】:Can we to use the single Action Bar for all Activities?我们可以对所有活动使用单个操作栏吗?
【发布时间】:2019-06-09 21:39:45
【问题描述】:

我有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
}

感谢您的回答!

【问题讨论】:

    标签: java android android-activity android-actionbar android-toolbar


    【解决方案1】:

    您可以创建名为BaseActivity 的类,该类将扩展AppCompatActivity,并将您想在其他Activity 中使用的代码和功能放在那里。然后在您的每个活动中,您将扩展BaseActivity 而不是AppCompatActivity。通过这样做,您可以避免重复您的代码。请记住,您必须将ActionBar 放入每个活动.xml 布局文件中。

    【讨论】:

    • 谢谢你,大卫。我会努力的。
    【解决方案2】:

    创建一个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 中创建的函数。

    【讨论】:

      【解决方案3】:
      1. 创建一个布局,比如toolbar_layout,并为您的布局添加代码,然后将该布局包含在您的所有活动中:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-05
        • 1970-01-01
        • 1970-01-01
        • 2014-10-12
        • 1970-01-01
        • 2018-07-15
        相关资源
        最近更新 更多