当需要在首选项中执行特定用户交互时,我正在使用 startActivity(new Intent(this, SettingsActivity.class))
中的 Activity
来调用我的应用程序的 PreferenceFragment
。
我认为向下滚动以达到所涉及的偏好会很好。
我找到了有关如何将 View 滚动到 ScrollView
s 和 ListView
s 的解决方案,但与 PreferenceFragment
s 无关。
我的偏好看起来像:
public class SettingsActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// ...
PreferenceManager.setDefaultValues(this, R.xml.settings, false);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new SettingsFragment())
.commit();
}
public static class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {
//preferences:
private Preference p
// [...]
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
//preference click listeners...
p = (Preference) findPreference("PR_NAME");
p.setOnPreferenceClickListener(new OnPreferenceClickListener() {
public boolean onPreferenceClick(Preference preference) {
// ...
return true;
}
});
// [...]
}
}
}
感谢您的任何建议
最佳答案
是的,这是可能的,但它是hacky,所以也不推荐。它假设 Preferences 由 id == android.R.id.list 的 ListView 支持,因此当您引用该 ListView 时,您可以调用 setSelection(position)
关于android - 是否可以将 PreferenceFragment 自动滚动到所需的(设置)条目?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20407373/