Форум программистов, компьютерный форум CyberForum.ru

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

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

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

15.03.2015, 14:29. Просмотров 385. Ответов 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;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.03.2015, 14:29     Обработчик событий для Drop-down в ActionBar. Android Studio
Посмотрите здесь:

Android viewpager(actionbar) под RelativeLayout Android
Белый фон при прокрутке listview и actionbar в android 2.1 Android
Обработчик событий для ImageButton Android
Календарь событий для кафе на android Android
ActionBar при < android 3 Android
Как скачать архив OpenCV для android studio? Android
Обработчик событий в табхост Android
Обработчик событий для динамического Button Android
Android Как создать цифровую подпись для Android Studio?
Исчез ActionBar на Android 4.4.2 Android
Android Конфигурация железа для Android Studio
Android Настройка Android Studio для работы со Scala

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 12:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru