【问题标题】:How to leave settings by mouse?如何通过鼠标离开设置?
【发布时间】:2013-10-12 10:35:34
【问题描述】:

我有一个可以通过鼠标完全使用的应用程序(连接到 USB OTG)。一切正常,除了一件事:我可以进入应用设置...但是如何从那里出去???

这是我用于设置的来源 - 老实说,我不知道如何在此处添加“返回”/“离开”按钮。或者还有其他聪明的方法吗?

public class Settings extends PreferenceActivity 
{
    public static class MyPreferenceFragment extends PreferenceFragment
    {
        @Override
        public void onCreate(final Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.settings);
        }

    }

    @Override
    protected void onCreate(final Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);

        if (Build.VERSION.SDK_INT>=11)
            getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
        else
            addPreferencesFromResource(R.xml.settings);
    }


}

感谢您的帮助和建议。

【问题讨论】:

    标签: android settings


    【解决方案1】:

    为什么不在设置操作栏中添加向上按钮?或者如果您没有使用操作栏,那么检查它是否可以包含任何具有图像按钮的标题 xml,以便您可以创建意图并返回?

    我用它来做动作条夏洛克

    ActionBar ab;

    ab.setDisplayHomeAsUpEnabled(true);

    并将其用作

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        switch (item.getItemId()) {
        case android.R.id.home:
            //create intent
            return true;
    
        default:
            return super.onOptionsItemSelected(item);
    
        }
    
    }
    

    【讨论】:

    • 问题是,我没有在首选项中使用 finish() 并且 setDisplayHomeAsUpEnabled 在首选项屏幕中也不起作用。
    • 你确定吗?我刚刚检查了 GMAIL 应用程序的设置有这个向上按钮并且可以导航回来。检查自己!它确实:)
    • 你是对的。我刚刚检查过... GMAIL 应用程序可以完全满足我的需要。现在......如果你能告诉我如何,你就是我今天的英雄。 :-)
    • 问题:你在你的应用程序中使用操作栏吗??...我还没有使用偏好,但你确定你不能在操作栏上设置按钮来获得偏好吗?如果没有使用默认的 android 的 actionbar,请尝试使用 actionbar sherlock
    【解决方案2】:

    感谢 Maulik Sheth - 您的回答是解决方案的 90%。这是正确的,但我昨天没有设法将其放入一个可行的解决方案中。现在 - 对于其他有同样问题的人,这是我的代码,适用于我。

    public class Settings extends PreferenceActivity 
    {
        public static class MyPreferenceFragment extends PreferenceFragment 
        {
            @Override
            public void onCreate(final Bundle savedInstanceState)
            {
                super.onCreate(savedInstanceState);
                addPreferencesFromResource(R.xml.settings);
                ActionBar actionBar = getActivity().getActionBar();
                actionBar.setHomeButtonEnabled(true);
                actionBar.setDisplayHomeAsUpEnabled(true);
                setHasOptionsMenu(true);
            }
    
            @Override
            public boolean onOptionsItemSelected(MenuItem item) {
                switch (item.getItemId()) {
                    case android.R.id.home:
                        getActivity().finish();
                        return true;
                }
                return super.onOptionsItemSelected(item);
            }
    
        }
    
        @Override
        protected void onCreate(final Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            if (Build.VERSION.SDK_INT>=11)
                getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
            else
                addPreferencesFromResource(R.xml.settings);
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-31
      • 2017-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多