Android 工具栏中的“向上”按钮不显示';我什么也不做
我在我的应用程序中设置了工具栏(这是第一次),但我无法设置Home(/up)按钮在单击时执行任何操作。 我有3个活动(MainActivity,Second,Third),我在所有3个活动中都定义了工具栏,但当我在每个活动中单击Home按钮时,什么都没有发生。我希望该按钮执行其(据我所知)默认操作,即返回Home活动,即“MainActivity” 以下是一些相关代码: 工具栏布局(名称:app_bar.xml): 第二项活动:Android 工具栏中的“向上”按钮不显示';我什么也不做,android,android-studio,android-toolbar,Android,Android Studio,Android Toolbar,我在我的应用程序中设置了工具栏(这是第一次),但我无法设置Home(/up)按钮在单击时执行任何操作。 我有3个活动(MainActivity,Second,Third),我在所有3个活动中都定义了工具栏,但当我在每个活动中单击Home按钮时,什么都没有发生。我希望该按钮执行其(据我所知)默认操作,即返回Home活动,即“MainActivity” 以下是一些相关代码: 工具栏布局(名称:app_bar.xml): 第二项活动: protected void onCreate(Bundle sa
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
btnSecond = (Button) findViewById(R.id.btn_second);
toolbar = (Toolbar) findViewById(R.id.toolbar_id);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
openThirdActivity();
}
public void openThirdActivity(){
btnSecond.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("com.example.noamm_000.finaltoolbarproject.Third");
startActivity(intent);
}
});
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
toolbar = (Toolbar) findViewById(R.id.toolbar_id);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
}
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.toolbar_menu,menu);
return super.onCreateOptionsMenu(menu);
}
第三十届:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
btnSecond = (Button) findViewById(R.id.btn_second);
toolbar = (Toolbar) findViewById(R.id.toolbar_id);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
openThirdActivity();
}
public void openThirdActivity(){
btnSecond.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("com.example.noamm_000.finaltoolbarproject.Third");
startActivity(intent);
}
});
}
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_third);
toolbar = (Toolbar) findViewById(R.id.toolbar_id);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDefaultDisplayHomeAsUpEnabled(true);
}
public boolean onCreateOptionsMenu(Menu menu){
getMenuInflater().inflate(R.menu.toolbar_menu,menu);
return super.onCreateOptionsMenu(menu);
}
您可以看到,所有3个活动“onCreate”函数基本相同。。
当我启动我的应用程序时,我可以在所有3个活动中看到工具栏,我可以在所有活动中看到后退箭头,但单击它什么也不做。
我知道我可以设置工具栏。setNavigationOnClickListener
,但我只想让它成为默认操作,即“回家”活动。。。。
非常感谢你,
诺姆试试这个:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
//finish(); or Do wahtever you wnat to do
return true;
}
return true;
}
试试这个:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
//finish(); or Do wahtever you wnat to do
return true;
}
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 == android.R.id.home) {
Intent i = new Intent(CurrentActivity.this, HomeActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
return true;
}
return super.onOptionsItemSelected(item);
}
像这样试试
@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 == android.R.id.home) {
Intent i = new Intent(CurrentActivity.this, HomeActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
return true;
}
return super.onOptionsItemSelected(item);
}
如果您有父活动,请遵循以下代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home:
if(NavUtils.getParentActivityIntent(this)== null) {
onBackPressed();
}else{
NavUtils.navigateUpFromSameTask(this);
}
break;
}
return super.onOptionsItemSelected(item);
}
如果您有父活动,请遵循以下代码:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home:
if(NavUtils.getParentActivityIntent(this)== null) {
onBackPressed();
}else{
NavUtils.navigateUpFromSameTask(this);
}
break;
}
return super.onOptionsItemSelected(item);
}
在你的活动中试试这个
@Override
public boolean onOptionsItemIdSelected(int id) {
switch (id) {
case R.id.home:
//do stuff
break;
}
return true;
}
在您的情况下,我建议您创建一个AbstractActivity,它继承您的所有活动。因此您可以考虑许多行为,包括工具栏按钮的管理
@Override
public boolean onOptionsItemIdSelected(int id) {
switch (id) {
case R.id.home:
//do stuff
break;
}
return true;
}
在您的情况下,我建议您创建一个AbstractActivity,它继承您的所有活动。因此,您可以考虑许多行为,包括工具栏按钮的管理检查谢谢,它工作了,但此按钮不存在defaullt函数,我不必使用onOptionsItemSelected函数定义它?检查谢谢,它工作了,但此按钮不存在defaullt函数,一个我不必使用onOptions ItemSelected函数定义的按钮?谢谢,它工作了,但是这个按钮不存在defallt函数吗,我不必使用OnOptions ItemSelected函数来定义它?@Noam..这是此按钮的默认函数..如果您希望工具栏中的“向上”按钮必须执行某些特定任务,则必须定义它…@Noam My code将带您到父活动,而不仅仅是返回堆栈。我还添加了Intent.Flag来清除后台堆栈,它在进行家庭活动时非常有用,并且可以在用户使用“Up”时阻止后台堆栈陷入混乱button@sarurabh古普塔我明白你的意思,只是我在这个链接中遵循了教程,他根本没有使用OnOptionsItemSelected方法,但是因为他使用的是ActionBar而不是toolbar,可能会有所不同,我不知道,我还是会坚持你和其他人在这里回答我的问题。再次感谢。@Noam..是的,可能是这样,这可能是不同之处…是的!如果我的答案对你有帮助,那么请标记为已接受!谢谢,它工作了,但是这个按钮不存在defaullt功能吗,我不必使用OnOptions ItemSelected函数来定义它?@Noam..这是此按钮的默认函数..如果您希望工具栏中的“向上”按钮必须执行某些特定任务,则必须定义它…@Noam My code将带您到父活动,而不仅仅是返回堆栈。我还添加了Intent.Flag来清除后台堆栈,它在进行家庭活动时非常有用,并且可以在用户使用“Up”时阻止后台堆栈陷入混乱button@sarurabh古普塔我明白你的意思,只是我在这个链接中遵循了教程,他根本没有使用OnOptionsItemSelected方法,但是因为他使用的是ActionBar而不是toolbar,可能会有所不同,我不知道,我还是会坚持你和其他人在这里回答我的问题。再次感谢。@Noam..是的,可能是这样,这可能是不同之处…是的!如果我的答案对你有帮助,那么请标记为已接受!谢谢,它工作了,但是这个按钮不存在defaullt函数吗?我不需要使用onoptionItemSelected函数定义它吗?谢谢,它工作了,但是这个按钮不存在defaullt函数吗?我不需要使用onoptionItemSelected函数定义它吗?它应该是Android.R.id.home(没有adnroid这个词-什么都不会发生)它工作了,但是这个按钮不存在defaullt函数吗?我不需要使用onOptionsItemSelected函数定义这个函数?关于你的建议-听起来不错,will Try这是整个工具栏按钮的默认函数:)它应该是Android.R.id.home(没有adnroid这个词-什么都不会发生)它工作了,但是这个按钮不存在defaullt函数吗?我不需要使用onOptionsItemSelected函数定义这个函数?关于你的建议-听起来不错,will Try这是整个工具栏按钮的默认函数:)