0

我有一个应用程序,可以通过使用鼠标(连接到 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);
    }


}

感谢您的帮助和建议。

4

2 回答 2

0

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

我用这个来做动作栏夏洛克

动作栏 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);

    }

}
于 2013-10-12T10:55:16.890 回答
0

感谢 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);
    }

}
于 2013-10-13T08:34:37.810 回答