Как закрыть выпадающий список из моего собственного блесна? - PullRequest
1 голос
/ 24 марта 2012

У меня есть пользовательский счетчик с одним TextView и двумя кнопками (для сортировки ListView).Все работает нормально, но выпадающий список не закрывается после вызова события onClick (от одной из моих кнопок).Я не смог найти способ закрыть его вручную.

Может кто-нибудь мне помочь?

РЕДАКТИРОВАТЬ: вот мой код

Это класс адаптера для счетчика:

public class CategoriesAdapter extends ArrayAdapter<String> {
    private Activity context;
    private String[] items;
    private ViewMoviesAdapter moviesAdapter;
    private Spinner spinner;
    private TextView txtCategories;    

    public CategoriesAdapter(Activity context, int textViewResourceId, String[] items,
        ViewMoviesAdapter moviesAdapter, Spinner spinner) {
        super(context, textViewResourceId, items);
        this.context = context;
        this.items = items;
        this.moviesAdapter = moviesAdapter;
        this.spinner = spinner;
    }

    // this method gets called in getView and getDropDownView
    public View getCustomView(int position, View convertView, ViewGroup parent) {

        View view = convertView;
        if (view == null) {
            LayoutInflater vi = (LayoutInflater) context.getSystemService(
                    Context.LAYOUT_INFLATER_SERVICE);
            view = vi.inflate(R.layout.row_spinner_categories, parent, false);
        }


        txtCategories = (TextView)view.findViewById(R.id.rsc_txtCategory);
        txtCategories.setText(items[position]);

        ImageButton imbSortAscending = (ImageButton)view.findViewById(R.id.rsc_imbUp);
        ImageButton imbSortDescending = (ImageButton)view.findViewById(R.id.rsc_imbDown);

        switch(position) {
            case 0:
                imbSortAscending.setOnClickListener(onIndexAscendingClick);
                imbSortDescending.setOnClickListener(onIndexDescendingClick);
                break;
            case 1:
                imbSortAscending.setOnClickListener(onNameAscendingClick);
                imbSortDescending.setOnClickListener(onNameDescendingClick);
                break;
            case 2:
                imbSortAscending.setOnClickListener(onWatchingDateAscendingClick);
                imbSortDescending.setOnClickListener(onWatchingDateDescendingClick);
                break;
        }

        return view;
    }

    private OnClickListener onNameAscendingClick = new OnClickListener() {

        @Override
        public void onClick(View v) {
                moviesAdapter.sort(new NameAscending());
        }
    };
}

И это код, где я называю класс адаптера.

spnCategories = (Spinner)findViewById(R.id.vmlL_spnCategory);
categoriesAdapter = new CategoriesAdapter(this, R.layout.row_spinner_categories,
        categoryItems, moviesAdapter, spnCategories);
spnCategories.setAdapter(categoriesAdapter);
...