使用Android导航抽屉中的自定义适配器,按下时按钮不会保持颜色。

时间:2015-10-15 10:05:51

标签: android

我正在为名为NavigationDrawer的{​​{1}}使用自定义适配器。标准CustomNavAdapter一切正常。当我单击arrayAdapter中的某个项目,关闭NavigationDrawer并重新打开它时,当前项目仍然突出显示。现在使用我的customAdapter,似乎此信息丢失了。在关闭并重新打开NavigationDrawer之后,我无法弄清楚如何使突出显示保持一致。

NavigationDrawer

1 个答案:

答案 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;
    }