С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Tratata74
0 / 0 / 0
Регистрация: 15.03.2015
Сообщений: 1
#1

Обработчик событий для Drop-down в ActionBar. Android Studio - Программирование Android

15.03.2015, 14:29. Просмотров 481. Ответов 0
Метки нет (Все метки)

Всем доброго времени суток. Задача такова. Есть список объектов. И для их фильтрации используется выпадающее меню (Drop-down) на ActionBar'е. Излазив весь инет так и не смог найти (или понять) нормальный способ обработать событие изменения значения выпадающего меню.
Идея в том, что список на экране состоит из объектов и при выборе какого-либо фильтра из меню, хотелось бы, чтоб в данный список отображались только те объекты, в которых установлен соответствующий флаг.
Листинг Активити:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
public class NewsListActivity extends ActionBarActivity implements ActionBar.OnNavigationListener {
 
    private ListView newsListView;
    SpinnerAdapter filterAdapter;
    ActionBar.OnNavigationListener mOnNavigationListener;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_news_list);
 
        ActionBar actionBar = getSupportActionBar();
 
        actionBar.setLogo(R.drawable.home_as_up);
        actionBar.setDisplayShowTitleEnabled(false);
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayHomeAsUpEnabled(true);
 
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
        filterAdapter = ArrayAdapter.createFromResource(this, R.array.filter_name, R.layout.support_simple_spinner_dropdown_item);
 
        mOnNavigationListener = new ActionBar.OnNavigationListener() {
            String[] filtersName = getResources().getStringArray(R.array.filter_name);
 
            @Override
            public boolean onNavigationItemSelected(int i, long l) {
                ListContentFragment newFragment = new ListContentFragment();
                FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
 
                ft.replace(R.id.newsFragment, newFragment, filtersName[i]);
 
                ft.commit();
                return true;
            }
        };
 
        actionBar.setListNavigationCallbacks(filterAdapter, this);
 
        newsListView = (ListView) findViewById(R.id.newsListView);
        NewsAdapter adapter = new NewsAdapter(this, initData());
 
        newsListView.setAdapter(adapter);
    }
 
    private List<NewsItem> initData(){
        List<NewsItem> list = new ArrayList<>();
 
        list.add(new NewsItem("It is My News", "13.03.2015"));
        list.add(new NewsItem("It is Main News", "13.03.2015"));
        list.add(new NewsItem("It is Favorites News", "13.03.2015"));
        list.add(new NewsItem("simply News", "13.03.2015"));
        list.add(new NewsItem("simply News", "13.03.2015"));
        list.add(new NewsItem("News text6", "13.03.2015"));
        list.add(new NewsItem("simply News", "13.03.2015"));
        list.add(new NewsItem("It is My News", "13.03.2015"));
        list.add(new NewsItem("simply News", "13.03.2015"));
        list.add(new NewsItem("It is My News", "13.03.2015"));
        list.add(new NewsItem("It is Favorites News", "13.03.2015"));
 
        return list;
    }
 
    private List<NewsItem> getMyNews(List<NewsItem> list){
        List<NewsItem> myNewsList = new ArrayList<>();
 
        for(int i = 0; i < list.size(); i++){
            if(list.get(i).isMy()){ myNewsList.add(list.get(i)); }
        }
 
        return myNewsList;
    }
 
    private List<NewsItem> getMainNews(List<NewsItem> list){
        List<NewsItem> mainNewsList = new ArrayList<>();
 
        for(int i = 0; i < list.size(); i++){
            if(list.get(i).isMain()){ mainNewsList.add(list.get(i)); }
        }
 
        return mainNewsList;
    }
 
    private List<NewsItem> getFavoriteNews(List<NewsItem> list){
        List<NewsItem> fNewsList = new ArrayList<>();
 
        for(int i = 0; i < list.size(); i++){
            if(list.get(i).isMain()){ fNewsList.add(list.get(i)); }
        }
 
        return fNewsList;
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_news_list, menu);
 
 
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
 
        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }
 
        return super.onOptionsItemSelected(item);
    }
 
 
    @Override
    public boolean onNavigationItemSelected(int i, long l) {
        
        return true;
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2015, 14:29
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обработчик событий для Drop-down в ActionBar. Android Studio (Программирование Android):

Обработчик событий для ImageButton - Программирование Android
У ImageButton такой же обработчик событий как и у Button? то есть onClickListener функция onClick да?

Обработчик событий для динамического Button - Программирование Android
у меня есть radiogroup с 2-мя radiobutton и в зависимости от них устанавливается тот или иной layout на странице. В отдельных методах я...

Выбор мощного android смартфона до 10 рублей, для тестирования проектов Android Studio, что посоветуете? - Программирование Android
Какую фирму посоветуете?

ActionBar при < android 3 - Программирование Android
Добрый день. Скажу сразу, что я полный нуб в этой теме. Мне нужно использовать ActionBar на версиях андроид меньше 3. Я знаю, что для этого...

Исчез ActionBar на Android 4.4.2 - Программирование Android
На устройстве Samsung SM-N7505 Android 4.4.2 не отображается ActionBar (На устройстве с Android 4.2.1 все норм) &lt;style name=&quot;AppTheme&quot;...

Календарь событий для кафе на android - Программирование Android
Помогите сделать календарь событий для кафе на android, где будут отображаться резервирование мест для различных событий и банкетов. При...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2015, 14:29
Привет! Вот еще темы с ответами:

Android viewpager(actionbar) под RelativeLayout - Программирование Android
Я работаю над ViewPager. Я написал код, который может создать ViewPager а также ActionBar а также у меня есть некоторые Java класс, но я...

Белый фон при прокрутке listview и actionbar в android 2.1 - Программирование Android
При прокрутке ListView на Android 2.3 появляется белый фон. Ставил Cache Color Hint на прозрачный или на цвет фона, не помогает. Как это...

Какие горячие клавиши используются для Find Usages в Android Studio для мака - Программирование Android
Как настроить на маке Find usages в scope Projects and libraries в Android studio? В винде я делаю Ctrl Alt Shift F7 а как в маке?

Конфигурация железа для Android Studio - Программирование Android
Пришла пора апгрейдить мой старенький комп. В принципе там старенького мало осталось, только проц и мать, остальное новое практически (БП,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.