Java 设置活动如何使用顶部的箭头向后导航

Java 设置活动如何使用顶部的箭头向后导航,java,android-studio,button,android-activity,settings,Java,Android Studio,Button,Android Activity,Settings,嗨,我已经创建了一个设置活动,当我在设置菜单中按下手机的后退按钮时,我会被引导到“主屏幕”,这是正确的,但当我按下设置菜单的上箭头时,没有发生任何事情,它似乎只是一个按钮。请看imgur,看看我指的是哪个箭头。我查看了java代码,似乎找到了按钮?感谢所有的帮助 这是设置菜单的整个java文件 公共类设置活动扩展了AppCompativePreferenceActivity{ /** *更新首选项摘要的首选项值更改侦听器 *以反映其新的价值。 */ 私有静态首选项.OnPreferenceCh

嗨,我已经创建了一个设置活动,当我在设置菜单中按下手机的后退按钮时,我会被引导到“主屏幕”,这是正确的,但当我按下设置菜单的上箭头时,没有发生任何事情,它似乎只是一个按钮。请看imgur,看看我指的是哪个箭头。我查看了java代码,似乎找到了按钮?感谢所有的帮助

这是设置菜单的整个java文件

公共类设置活动扩展了AppCompativePreferenceActivity{
/**
*更新首选项摘要的首选项值更改侦听器
*以反映其新的价值。
*/
私有静态首选项.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener=新首选项.OnPreferenceChangeListener(){
@凌驾
公共布尔onPreferenceChange(首选项、对象值){
字符串stringValue=value.toString();
if(RingtonePreference的首选项实例){
//有关铃声首选项,请查找正确的显示值
//使用铃声管理器。
if(TextUtils.isEmpty(stringValue)){
//空值对应“静音”(无铃声)。
preference.setSummary(R.string.pref_铃声_静音);
}否则{
Ringtone Ringtone=RingtoneManager.getRingtone(
preference.getContext(),Uri.parse(stringValue));
如果(铃声==null){
//如果存在查找错误,请清除摘要。
preference.setSummary(null);
}否则{
//设置摘要以反映新铃声显示
//名字。
String name=ringtone.getTitle(preference.getContext());
首选项。集合摘要(名称);
}
}
}否则{
//对于所有其他首选项,将摘要设置为值的
//简单的字符串表示法。
首选项.setSummary(stringValue);
}
返回true;
}
};
/**
*确定设备是否有超大屏幕的帮助器方法。对于
*例如,10英寸的平板电脑是特大型的。
*/
私有静态布尔值isxlargetable(上下文){
返回(context.getResources().getConfiguration().screenLayout
&Configuration.SCREENLAYOUT\u SIZE\u MASK)>=Configuration.SCREENLAYOUT\u SIZE\u XLARGE;
}
/**
*将首选项的摘要绑定到其值
*首选项的值发生更改,其摘要(列表下方的文本行)
*将更新首选项(标题)以反映该值。同时
*调用此方法后立即更新。确切的显示格式为
*取决于偏好的类型。
*
*@see#sbindpreferencesummary to valuelistener
*/
私有静态void bindPreferenceSummaryToValue(首选项){
//将侦听器设置为监视值更改。
setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
//使用首选项的
//当前值。
sBindPreferenceSummaryToValueListener.onPreferenceChange(首选项,
优先权经理
.GetDefaultSharedReferences(首选项.getContext())
.getString(首选项.getKey(),“”);
}
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setupActionBar();
}
/**
*如果API可用,请设置{@link android.app.ActionBar}。
*/
私有void setupActionBar(){
ActionBar ActionBar=getSupportActionBar();
if(actionBar!=null){
//在操作栏中显示“向上”按钮。
actionBar.setDisplayHomeAsUpEnabled(true);
}
}
/**
*{@inheritardoc}
*/
@凌驾
公共布尔值onIsMultiPane(){
返回Isxlarge平板电脑(此);
}
/**
*{@inheritardoc}
*/
@凌驾
@TargetApi(构建版本代码蜂窝)
public void onBuildHeaders(列表目标){
loadHeadersFromResource(R.xml.pref_头,目标);
}
/**
*此方法停止恶意应用程序中的片段注入。
*确保在这里拒绝任何未知片段。
*/
受保护的布尔值isValidFragment(字符串碎片名称){
返回PreferenceFragment.class.getName().equals(fragmentName)
||GeneralReferenceFragment.class.getName().equals(fragmentName);
}
/**
*此片段仅显示一般首选项。当
*“活动”显示了一个双窗格设置UI。
*/
@TargetApi(构建版本代码蜂窝)
公共静态类GeneralReferenceFragment扩展了PreferenceFragment{
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_-general);
设置选项菜单(真);
//绑定编辑文本/列表/对话框/铃声首选项的摘要
//当他们的价值观发生变化时,他们的总结
//根据Android设计,更新以反映新的价值
//准则。
bindPreferenceSummaryToValue(FindReference(“示例文本”);
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
int id=item.getItemId();
if(id==android.R.id.home){
startActivity(新意图(getActivity(),setingsActivity.class));
返回真值
<meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".HomeScreenActivity"/>
<meta-data android:name="android.support.PARENT_ACTIVITY"
  android:value=".MainActivity"/>
 /**
     * Set up the {@link android.app.ActionBar}, if the API is available.
     */
    private void setupActionBar() {
        ActionBar actionBar = getSupportActionBar();
        if (actionBar != null) {
            // Show the Up button in the action bar.
            actionBar.setDisplayHomeAsUpEnabled(true);
            actionBar.setDisplayShowHomeEnabled(true);
        }
    }
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

// add back arrow to toolbar
if (getSupportActionBar() != null){
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    getSupportActionBar().setDisplayShowHomeEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) { 
        switch (item.getItemId()) {
        case android.R.id.home: 
            onBackPressed();
            return true;
        }

    return super.onOptionsItemSelected(item);
}
@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // handle arrow click here
        if (item.getItemId() == android.R.id.home) {
            finish(); // close this activity and return to preview activity (if there is any)`enter code here`
        }

        return super.onOptionsItemSelected(item);
    }
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getFragmentManager().beginTransaction().replace(android.R.id.content, new MainSettingsFragment()).commit();
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
        onBackPressed();
    }
    return super.onOptionsItemSelected(item);
}

@Override
public void onBackPressed() {
    super.onBackPressed();
    this.finish();
    Intent intent = new Intent(this, MainActivity.class);
    startActivity(intent);
}
<activity android:name=".SettingsActivity"
    android:label="@string/title_settings">
    <meta-data android:name="android.support.PARENT_ACTIVITY"
    android:value=".MainActivity"/>
</activity>