我正在为名为NavigationDrawer
的{{1}}使用自定义适配器。标准CustomNavAdapter
一切正常。当我单击arrayAdapter
中的某个项目,关闭NavigationDrawer并重新打开它时,当前项目仍然突出显示。现在使用我的customAdapter,似乎此信息丢失了。在关闭并重新打开NavigationDrawer
之后,我无法弄清楚如何使突出显示保持一致。
NavigationDrawer
答案 0 :(得分:0)
每次打开导航抽屉时刷新Adapter
,一切都会恢复正常。要实现您想要的功能,您必须保持对当前所选阵列的索引的引用。您可以使用SharedPreferences
执行此操作。每次加载Adapter
中的每个视图时,您都可以检查它的位置是否与您在偏好设置中存储的所选位置相匹配。如果是,它可以再次突出显示自己。
您的代码最终会看起来像这样:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = _context.getLayoutInflater();
View rowView = inflater.inflate(R.layout.navigation_drawer_textview, null, true);
TextView txtTitle = (TextView) rowView.findViewById(R.id.text);
ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
txtTitle.setText(_text[position]);
imageView.setImageResource(_imageId[position]);
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getActivity());
int selectedPosition = sharedPreferences.getInt("SELECTED_POSITION_KEY", -1);
if (selectedPosition == position) {
reviewImageView.setImageResource(yourSelectedImageResource);
}
return rowView;
}