向自定义工具栏添加后退按钮的最佳方法是什么?
What is the best way to add a back button to custom toolbars?
所以我知道如何将向后导航按钮添加到我的自定义工具栏,但是必须有一种比在每个活动中复制和粘贴此代码更有效的方法来向多个活动添加功能...
Toolbar toolbar = findViewById(R.id.tlbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
我试过做一个通用的 class 是我创建了一个可以在每个 activity 中调用的函数但是你需要 findViewById
这只能在 activity。对此有什么建议吗?
首先像这样创建一个基地class
public class BaseActivity extends AppCompatActivity{
public void setToolbar(@IdRes int toolbarID){
try {
Toolbar toolbar = findViewById(toolbarID);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}catch (Exception e){
e.printStackTrace();
}
}
}
在使用 BaseActivity class
扩展所有 Activity class 之后
public class LoginNewActivity extends BaseActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setToolbar(R.id.toolbar); //You can call your method like this
}
}
如果您想了解更多信息,请在 JAVA
中搜索 Inheritance and polymorphism
在清单上的 activity 标签中添加 parentactivityname 并添加值作为 activity 返回时你想去的值 pressed.this 是最好的解决方案你.
所以我知道如何将向后导航按钮添加到我的自定义工具栏,但是必须有一种比在每个活动中复制和粘贴此代码更有效的方法来向多个活动添加功能...
Toolbar toolbar = findViewById(R.id.tlbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
我试过做一个通用的 class 是我创建了一个可以在每个 activity 中调用的函数但是你需要 findViewById
这只能在 activity。对此有什么建议吗?
首先像这样创建一个基地class
public class BaseActivity extends AppCompatActivity{
public void setToolbar(@IdRes int toolbarID){
try {
Toolbar toolbar = findViewById(toolbarID);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
toolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}catch (Exception e){
e.printStackTrace();
}
}
}
在使用 BaseActivity class
扩展所有 Activity class 之后public class LoginNewActivity extends BaseActivity{
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setToolbar(R.id.toolbar); //You can call your method like this
}
}
如果您想了解更多信息,请在 JAVA
中搜索 Inheritance and polymorphism在清单上的 activity 标签中添加 parentactivityname 并添加值作为 activity 返回时你想去的值 pressed.this 是最好的解决方案你.