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

Картинки в ExpandableListView - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android MediaCodec - декодирование сжатого звука http://www.cyberforum.ru/android-dev/thread1691998.html
Здравствуйте, уважаемые форумчане. Пытаюсь при помощи MediaCodec из сжатых звуковых файлов формата MPEG Layer-3 получить исходные звуковые сэмплы. //Фреймы из mp3-файла достаю при помощи MediaExtractor: MediaExtractor me = new MediaExtractor(); me.setDataSource(srcFileName); //srcFileName - исходный mp3-файл me.selectTrack(0); MediaFormat mf = me.getTrackFormat(0);
Android Не удается подключиться к БД Здравствуйте. Помогите решить проблему с подключением к БД. package com.example.s.park; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; http://www.cyberforum.ru/android-dev/thread1691972.html
Android Мобильная версия сайта в виде приложения
Доброго времени суток, уважаемые форумчане! У меня задача - приложение под Android - мобильная версия сайта, причем основной функционал должен быть доступным в режиме офф-лайн, при наличии интернета - приложение выполняет проверку на наличие обновлений на сайте, при наличии оных - обновляется. Лично я, своим малоопытным глазом, пока только вижу приложение, как банальный склад...
Хранение обьектов в SQLite Android
У меня есть класс Document который содержит следующие поля - Номер: строка, Дата: дата, Пользователь: строка, Сумма: вещественное, Валюта: строка, Курс Валюты: вещественное, Товар: строка, Количество: вещественное. И у меня есть очень много обьектов этого класса. По какому принцыпу мне лучше сохранить эти объекты в SQLite? Можно ли объект класса Document целиком засунуть в SQLite или его нужно...
Android Free for non-commercial use icons? http://www.cyberforum.ru/android-dev/thread1691383.html
Доброе утро! Недавно нашел в сети иконки, где по поводу лицензии было написано: Free for non-commercial use. Могу ли я использовать их в своем бесплатном приложении и выложить его на Гугл Плей?
Android Принципы разработки интерфейса приложения Здравствуйте, хочу создать приложение с большим количеством окон, и чтобы ориентировано было на планшеты и телефоны ( смена ориентации и размер экрана). Создавать layout под экраны считаю не практично. Сейчас пытаюсь в одной Activity с контейнером, управлять фрагментами динамически, но чем больше фрагментов, тем больше разрастается MainActivity, начинаю "блудить" в коде. Какие еще варианты могут... подробнее

Показать сообщение отдельно
mcGurov
3 / 3 / 0
Регистрация: 30.07.2013
Сообщений: 99

Картинки в ExpandableListView - Android

23.03.2016, 01:11. Просмотров 164. Ответов 0
Метки (Все метки)

Как переделать адаптер, чтобы в ExpandableListView в child элементах находились определённые картинки?
В идеале конечно ловить название пункта и выводить соответствующую ему картинку...

Код основной активности: (Тут ловим выбранный пункт по слову и запускаем нужную активность...)
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
124
public class Name extends Activity implements
        SearchView.OnQueryTextListener, SearchView.OnCloseListener {
 
    private SearchView mSearchView;
    private FishNameExpandableListAdapter mAdapter;
    private ExpandableListView mExpandableListView;
    private ArrayList continentList = new ArrayList<FishNameContinent>();
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.name);
 
        SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
        mSearchView = (SearchView) findViewById(R.id.searchViewFishName);
        mSearchView.setVisibility(View.GONE);
        mSearchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
 
        final FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
 
        displayList();
        expandAll();
        collapseAll();
 
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
                Animation openSearch = AnimationUtils.loadAnimation(FishName.this, android.R.anim.slide_in_left);
                mSearchView.startAnimation(openSearch);
                mSearchView.setVisibility(View.VISIBLE);
 
                Animation hideFab = AnimationUtils.loadAnimation(FishName.this, android.R.anim.slide_out_right);
                fab.startAnimation(hideFab);
                fab.setVisibility(View.GONE);
 
                // открываем клавиатуру и активируем searchView
                mSearchView.requestFocus();
                InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
                mSearchView.setIconifiedByDefault(false);
                mSearchView.setOnQueryTextListener(FishName.this);
                mSearchView.setOnCloseListener(FishName.this);
            }
        });
 
        // нажатие на элемент
        mExpandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
 
            public boolean onChildClick(ExpandableListView parent, View convertView,
                                        int groupPosition, int childPosition, long id) {
 
                RelativeLayout relativeLayout = (RelativeLayout )convertView;
                TextView textView = (TextView) relativeLayout.findViewById(R.id.namerow);
 
                String childText = textView.getText().toString(); // получаем текст нажатого элемента
 
                //названия:
                if (childText == "Анабас") {Intent i = new Intent(FishName.this, Anabas.class);startActivity(i);};
                if (childText == "Ктенопома") {Intent i = new Intent(FishName.this, Ktenopoma.class);startActivity(i);};
                
            }
 
        });
    }
 
    //метод закрытия групп
    private void collapseAll() {
        int count = mAdapter.getGroupCount();
        for (int i = 0; i < count; i++){
            mExpandableListView.collapseGroup(i);
        }
    }
    //метод открытия групп
    private void expandAll() {
        int count = mAdapter.getGroupCount();
        for (int i = 0; i < count; i++) {
            mExpandableListView.expandGroup(i);
        }
    }
 
    private void displayList() {
        loadSomeData();
        mExpandableListView = (ExpandableListView) findViewById(R.id.expandableListViewFishName);
        mAdapter = new FishNameExpandableListAdapter(FishName.this, continentList);
        mExpandableListView.setAdapter(mAdapter);
 
    }
 
    private void loadSomeData() {
       ArrayList countryList = new ArrayList<FishNamePopulation>();
        FishNamePopulation worldPopulation = new FishNamePopulation("Анабас");
        countryList.add(worldPopulation);
        worldPopulation = new FishNamePopulation("Ктенопома");
        countryList.add(worldPopulation);
 
        FishNameContinent continent = new FishNameContinent("Анабасовые", countryList);
        continentList.add(continent);
 
    }
 
    @Override
    public boolean onClose() {
        mAdapter.filterData("");
        expandAll();
        return false;
    }
 
    @Override
    public boolean onQueryTextSubmit(String query) {
        mAdapter.filterData(query);
        expandAll();
        return false;
    }
 
    @Override
    public boolean onQueryTextChange(String query) {
        mAdapter.filterData(query);
        expandAll();
        return false;
    }
 
}
Далее класс для отображения заголовков:
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
public class FishNameContinent {
    private String mName;
    private List<FishNamePopulation> mCountryList = new ArrayList<FishNamePopulation>();
 
    public FishNameContinent(String name, ArrayList<FishNamePopulation> countryList) {
        this.mName = name;
        this.mCountryList = countryList;
    }
 
    public String getName() {
        return mName;
    }
 
    public void setName(String name) {
        this.mName = name;
    }
 
    public ArrayList<FishNamePopulation> getCountryList() {
        return (ArrayList<FishNamePopulation>) mCountryList;
    }
 
    public void setCountryList(ArrayList<FishNamePopulation> countryList) {
        this.mCountryList = countryList;
    };
}
Класс для названий в child:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class FishNamePopulation {
    private String mCountry;
 
    public FishNamePopulation(String country) {
        this.mCountry = country;
    }
 
    public String getCountry() {
        return this.mCountry;
    }
 
    public void setCountry(String country) {
        this.mCountry = country;
    }
 
 
}
Ну и собственно сам класс адаптера:
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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
public class FishNameExpandableListAdapter extends BaseExpandableListAdapter {
 
    private Context mContext;
    private ArrayList<FishNameContinent> mContinentList;
    private ArrayList<FishNameContinent> mOriginalList;
 
    private LayoutInflater mInflater;
    private List<FishNamePopulation> mWorldpopulationlist = null;
    private ArrayList<FishNamePopulation> mArraylist;
 
    public FishNameExpandableListAdapter(Context context,
                                     ArrayList<FishNameContinent> continentList) {
        this.mContext = context;
 
        this.mContinentList = new ArrayList<>();
        this.mContinentList.addAll(continentList);
 
        this.mOriginalList = new ArrayList<>();
        this.mOriginalList.addAll(continentList);
    }
 
    public class ViewHolder {
        TextView country;
        TextView population;
        ImageView flag; // добавлено
    }
 
    @Override
    public int getGroupCount() {
        return mContinentList.size();
    }
 
    @Override
    public int getChildrenCount(int groupPosition) {
        ArrayList<FishNamePopulation> countryList = mContinentList.get(
                groupPosition).getCountryList();
        return countryList.size();
    }
 
    @Override
    public Object getGroup(int groupPosition) {
        return mContinentList.get(groupPosition);
    }
 
    @Override
    public Object getChild(int groupPosition, int childPosition) {
        ArrayList<FishNamePopulation> countryList = mContinentList.get(
                groupPosition).getCountryList();
        return countryList.get(childPosition);
    }
 
    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }
 
    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }
 
    @Override
    public boolean hasStableIds() {
        return true;
    }
 
    @Override
    public View getGroupView(int groupPosition, boolean isExpanded,
                             View convertView, ViewGroup parent) {
        FishNameContinent continent = (FishNameContinent) getGroup(groupPosition);
        if (convertView == null) {
            LayoutInflater layoutInflater = (LayoutInflater) mContext
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = layoutInflater.inflate(R.layout.group_row, null);
 
        }
 
        TextView tvHeading = (TextView) convertView.findViewById(R.id.heading);
        tvHeading.setText(continent.getName().trim());
 
        return convertView;
    }
 
    @Override
    public View getChildView(int groupPosition, int childPosition,
                             boolean isLastChild, View convertView, ViewGroup parent) {
        FishNamePopulation worldpopulation = (FishNamePopulation) getChild(
                groupPosition, childPosition);
 
 
        if (convertView == null) {
            LayoutInflater layoutInflater = (LayoutInflater) mContext
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = layoutInflater.inflate(R.layout.child_row, null);
        }
 
        TextView tvName = (TextView) convertView.findViewById(R.id.namerow);
        tvName.setText(worldpopulation.getCountry().trim());
 
        return convertView;
    }
 
    @Override
    public boolean isChildSelectable(int groupPosition, int childPosition) {
        return true;
    }
 
    public void filterData(String query) {
 
        query = query.toLowerCase();
        Log.v("MyAdapter", String.valueOf(mContinentList.size()));
        mContinentList.clear();
 
        if (query.isEmpty()) {
            mContinentList.addAll(mOriginalList);
        } else {
 
            for (FishNameContinent continent : mOriginalList) {
 
                ArrayList<FishNamePopulation> countryList = continent
                        .getCountryList();
                ArrayList<FishNamePopulation> newList = new ArrayList<FishNamePopulation>();
                for (FishNamePopulation country : countryList) {
                    if (country.getCountry().toLowerCase()
                            .contains(query)) {
                        newList.add(country);
                    }
                }
                if (newList.size() > 0) {
                    FishNameContinent nContinent = new FishNameContinent(continent.getName(),
                            newList);
                    mContinentList.add(nContinent);
                }
            }
        }
 
        Log.v("MyAdapter", String.valueOf(mContinentList.size()));
        notifyDataSetChanged();
    }
Добавлено через 4 часа 12 минут
Главное ведь задать вопрос, и решение приходит само ))))))
Вообщем в childView добавил imageView,...
затем:
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
public class FishNamePopulation {
    private String mCountry;
    private int mImage;
 
    public FishNamePopulation(String country, int image) {
        this.mCountry = country;
        this.mImage = image;
    }
 
    public String getCountry() {
        return this.mCountry;
    }
 
    public void setCountry(String country) {
        this.mCountry = country;
    }
 
   public int getImage() {
        return this.mImage;
    }
    public void setimage(int image) {
        this.mImage = image;
    }
 
}
далее в адаптере изменения для вывода картинки:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 @Override
    public View getChildView(int groupPosition, int childPosition,
                             boolean isLastChild, View convertView, ViewGroup parent) {
        FishNamePopulation worldpopulation = (FishNamePopulation) getChild(
                groupPosition, childPosition);
 
 
        if (convertView == null) {
            LayoutInflater layoutInflater = (LayoutInflater) mContext
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = layoutInflater.inflate(R.layout.child_row, null);
        }
 
        TextView tvName = (TextView) convertView.findViewById(R.id.namerow);
        tvName.setText(worldpopulation.getCountry().trim());
 
        ImageView tvName2 = (ImageView) convertView.findViewById(R.id.flag);
        tvName2.setImageResource(worldpopulation.getImage());
 
        return convertView;
    }
и соответственно в основной активности изменил:
Java
1
2
3
4
5
6
7
8
9
10
11
private void loadSomeData() {
        ArrayList countryList = new ArrayList<FishNamePopulation>();
        FishNamePopulation worldPopulation = new FishNamePopulation("Анабас", R.drawable.a);
        countryList.add(worldPopulation);
 
 
        FishNameContinent continent = new FishNameContinent("Анабасовые", countryList);
        continentList.add(continent);
 
 
    }
И ура, появились картинки...
Люблю поговорить сам с собой...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru