所以要打破它。
我有两个活动:主要活动和子活动。
当我处于子活动状态时,我想按下返回主页按钮 在工具栏上,返回家。
我尝试将android.support.PARENT_ACTIVITY放入清单,但我仍然无法让它工作。也许我在这里没有看到明显的东西。希望你们能帮忙。
这是我的潜意识。
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.final_create_cardview_1_image);
//Toolbar
myToolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.app_bar_pic);
setSupportActionBar(myToolbar);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
private void setSupportActionBar(Toolbar myToolbar)
{
}
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
int id = item.getItemId();
if(id == android.R.id.home)
{
NavUtils.navigateUpFromSameTask(this);
}
return super.onOptionsItemSelected(item);
}
现在这是我的清单。第一项活动是主要活动。第二项活动是子活动。
<activity
android:name=".MyActivity"
android:label="Promenade"
android:parentActivityName=".MyActivity">
<meta-data android:name="android.support.PARENT_ACTIVITY"
android:value=".CardFinal.imageActivity">
</meta-data>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</activity>
<activity android:name=".CardFinal.imageActivity"
android:label="PickImage">
</activity>
如果我正确地执行清单,我不太自信,stackoverflow上的其他解决方案非常混乱。如果我可以直截了当地回答这个问题,那就太棒了。谢谢!
答案 0 :(得分:2)
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
int id = item.getItemId();
if(id == android.R.id.home)
{
//NavUtils.navigateUpFromSameTask(this);
finish();
}
return super.onOptionsItemSelected(item);
}
答案 1 :(得分:1)
清单错误
cat /var/chef/cache/chef-stacktrace.out
Generated at 2016-04-21 11:47:24 -0600
Chef::Exceptions::CannotDetermineNodeName: Unable to determine node name: configure node_name or configure the system's hostname and fqdn
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef- 11.12.8/lib/chef/client.rb:299:in `node_name'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/client.rb:313:in `register'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/client.rb:416:in `do_run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/client.rb:213:in `block in run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/client.rb:207:in `fork'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/client.rb:207:in `run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/application.rb:217:in `run_chef_client'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/application/client.rb:328:in `block in run_application'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/application/client.rb:317:in `loop'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/application/client.rb:317:in `run_application'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/lib/chef/application.rb:67:in `run'
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/chef-11.12.8/bin/chef-client:26:in `<top (required)>'
/usr/bin/chef-client:23:in `load'
/usr/bin/chef-client:23:in `<main>'[root@xyz chef]#
答案 2 :(得分:1)
您也可以使用Intent或onBackPressed()方法
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
int id = item.getItemId();
if(id == android.R.id.home)
{
//intent your parent activity
Intent intent = new Intent(getApplicationContext(),YourActivit.class);
startActivity(intent);
finish();
//Other way
onBackPressed();
}
return super.onOptionsItemSelected(item);
}
答案 3 :(得分:0)
if(getSupportActionBar() != null){
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
试试这个。
https://developer.android.com/training/implementing-navigation/ancestral.html
答案 4 :(得分:0)
如果使用AppCompatActivity,则当前最好的方法是重写onSupportNavigateUp()方法。
这是Kotlin中的代码:
override fun onSupportNavigateUp(): Boolean {
onBackPressed()
return true
}