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

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

Войти
Регистрация
Восстановить пароль
 
 
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
#1

Как привязать к выбранным пунктам Spiner разные ListView? - Программирование Android

08.01.2015, 20:02. Просмотров 573. Ответов 18
Метки нет (Все метки)

Как привязать к выбранным пунктам Spiner разные ListView? т.е. не могу понять каким способом...

В одном активити нужно по выбору пункта в спинере отобразить разные ListView...

Помогите пожалуйста?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2015, 20:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как привязать к выбранным пунктам Spiner разные ListView? (Программирование Android):

Spiner как проверить выбранный пункт - Программирование Android
Здравствуйте, у меня есть Spiner со списком, выбранный элемент задаю TextView-у но не как не получается сравнить выбранный элемент с...

Утечка памяти в Spiner - Программирование Android
Здравствуйте. Создал новый проект в Layout добавил выпадающий список в ресурсы добавил массив значений списка, нового кода 0. Значения...

Передача значения из SPiner - Программирование Android
В диалоге происходит выбор названия таблицы в Spiner списке. По нажатию кнопки OK это значени должно присвоитсья переменной из другого...

Получение значения из spiner - Программирование Android
Как можно получить значение из спайнера? То есть сначала выбираем элементы в спайнере потом по нажатию ок в диалоге это значение передаётся...

Как привязать коллекцию к ListView - C# WPF
Возникла проблема создания привязки к ListView этой коллекции: using System; using System.Collections.Generic; using...

Как привязать массив к ListView - C# WPF
1. Есть массив List<MyClass>. У этого класса есть несколько свойств. Как привязать этот массив к ListView, столбцы которого должны...

18
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
29.01.2015, 09:40  [ТС] #2
выбираем в Spinner selectedItemPosition - "№1", "№2" и т.д., как отобразить в этом же активити разные ListView в зависимости от выбранного,.... подскажите в какую сторону глядеть?

P/S/ есть идея написать методы для каждого ListView в котором реализовать его создание, но как это сделать и как его запускать слабо представляю, подскажите кто в курсе?
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
29.01.2015, 10:21 #3
disx, как мне кажется Вам будет достаточно в разметке одного spinner'a и одного ListView.
Выбираем item в spinner'e, получаем соответствующий набор данных(коллекцию как вариант), скармливаем его adapter'у.
Единственное что если наборы данных будут существенно отличатся друг от друга. Тогда необходимо либо переопределить adapter, либо в зависимости от выбранного набора данных устанавливать в ListView соответствующую разметку.
Цитата Сообщение от disx Посмотреть сообщение
P/S/ есть идея написать методы для каждого ListView в котором реализовать его создание, но как это сделать и как его запускать слабо представляю, подскажите кто в курсе?
Вы имеете ввиду переопределить adapter?
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
29.01.2015, 10:34  [ТС] #4
androbro, если правильно понимаю да, т.е. написать для каждого Листа свой адаптер, и по выбору пункта вешать на листвью нужный адаптер,...

да, и как обновлять данные выбираемых списков в одном активити?
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
29.01.2015, 11:52 #5
disx, у Вас информация сильно отличается в зависимости от выбранного пункта spinner'a?
Цитата Сообщение от disx Посмотреть сообщение
да, и как обновлять данные выбираемых списков в одном активити?
удаляете adpater, вешаете новый.
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
29.01.2015, 12:56  [ТС] #6
androbro,
у Вас информация сильно отличается в зависимости от выбранного пункта spinner'a?
нет, только текстом.
0
androbro
326 / 287 / 61
Регистрация: 17.10.2014
Сообщений: 854
29.01.2015, 13:38 #7
disx, ну если вообще все идентично ничего переопределять и удалять не нужно.
Коллекцию(которая связана с адаптером) заполняйте информацией соответствующей выбранному элементу и вызываете у него
Java
1
adapter.notifyDataSetChanged()
0
Hedd
13 / 13 / 2
Регистрация: 21.01.2015
Сообщений: 131
02.02.2015, 19:47 #8
Все верно. Вам хватит 1 spinner и 1 listView. Если у вас одинаковая разметка лейаута listView, просто заполняйте его данными по клику на каждый пункт в спиннере.
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
09.02.2015, 23:32  [ТС] #9
androbro,
удаляете adpater, вешаете новый.
Сори, как повесить понятно, а удалить adapter как?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
10.02.2015, 08:02 #10
Не надо ничего удалять, заполняете адаптер новыми данными и notifyDataSetChanged().
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.02.2015, 09:15 #11
Rube, оговорился похоже.
Заполняете источник данных для адаптера новыми данными.

Не получается?
Где код?
1
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
10.02.2015, 10:50 #12
Вот код
ActivityMain
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    /********************** Spinner (дни недели) *************************/
    final Spinner spinner = (Spinner)findViewById(R.id.spinner_drawer_day);     
 
    /********************** Установки Spinner ***************************/
    final String[] days = getResources().getStringArray(R.array.days); // дни недели            
    CustomAdapterSpinner adapter = new CustomAdapterSpinner(this, days);        
    spinner.setAdapter(adapter);    
 
    /********************** Слушаем Spinner ***************************/
    spinner.setOnItemSelectedListener(new OnItemSelectedListener() {
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {              
            Log.d("", days[i]); // выбранный в spinner день недели          
        }                   
        public void onNothingSelected(AdapterView<?> adapterView) {  }
    }); 
}

CustomAdapterSpinner
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
public class CustomAdapterSpinner extends ArrayAdapter<String> {
    private final String[] values;
 
    public CustomAdapterSpinner(Context context, String[] values) {
        super(context, R.layout.spinner_dropdown_item, values);
        this.values = values;
    }
 
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return newView(position, convertView, parent, R.layout.spinner);
    }
 
    @Override
    public View getDropDownView(int position, View convertView, ViewGroup parent) {
        return newView(position, convertView, parent,
                R.layout.spinner_dropdown_item);
    }
 
    private View newView(int position, View convertView, ViewGroup parent,
            int layout) {
        View view = convertView;
        LayoutInflater inflater = (LayoutInflater) getContext()
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        view = inflater.inflate(layout, parent, false);
        TextView textView = (TextView) convertView.findViewById(R.id.day);
        textView.setText(values[position]);
        return view;
    }
}
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
10.02.2015, 10:55 #13
Цитата Сообщение от Armagedo Посмотреть сообщение
Не получается?
Где код?
Это было адресованно не вам.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
10.02.2015, 11:06 #14
Пускай ТС пользуется
0
disx
23 / 23 / 0
Регистрация: 26.02.2014
Сообщений: 563
Записей в блоге: 1
10.02.2015, 15:57  [ТС] #15
Rube, Armagedo, Здорова парни!

это я тут интересного пропустил ?!

короче вчера как-то так наковырял:
Java
1
2
3
4
5
6
7
public void onItemSelected(AdapterView<?> parent,
                    View itemSelected, int selectedItemPosition, long selectedId) {
                if ( Predmet[selectedItemPosition] == "Русский") {
                    Rus();
}
return;
                }
метод так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Rus(){
    //получаем курсор
    cursor = db.getAllData2();//курсор второй таблицы
    startManagingCursor(cursor);
    // формируем столбцы сопоставления
    String[] from = new String[] { DB.COLUMN_IMG2, DB.COLUMN_TXT2 };
    int[] to = new int[] { R.id.ivImg, R.id.tvText };
    @SuppressWarnings("deprecation")
    SimpleCursorAdapter adapterR = new SimpleCursorAdapter(this, R.layout.item, cursor, from, to);
    lvData2=(ListView)findViewById(R.id.lvData);
    lvData2.setAdapter(adapterR);
adapterR.notifyDataSetChanged();
 
    cursor.requery();
}
и все работает(по выбору в спинере листает листы, ну заполняет данными из разных таблиц), только прошу уважаемые, окинуть взглядом на предмет "ровности кода" может покрасивше можно, или мож что лишнее?

Rube'вский пример обязательно разберу, просто пока в Кастомных адаптерах не совсем врубаюсь, а че за
ТС
кстати?
0
10.02.2015, 15:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.02.2015, 15:57
Привет! Вот еще темы с ответами:

Как получить таблицу из БД и привязать к Listview - C#
Здравствуйте! Можете объяснить как получить таблиу из xds-базы данных и наложить ее на компонент Listview? :sorry: ЗЫ: Новичок...

LiveBinding, как привязать ObjectList<T> к ListView? - Delphi
Можно пример как привязать ObjectList&lt;T&gt; к ListView? Где T выглядит так: type TMan = class id, name: string; constructor...

Как к идентификатору привязать страницу и каждому номеру Id писать разные вещи? - PHP БД
Навеяло отсюда http://www.cyberforum.ru/php-beginners/thread124304.html Все настроил, все подогнал под себя... Но вот незадача.... К...

Как разнести на разные столбцы listview - C#
foreach (..) { ListViewItem lvi = new ListViewItem(); ...


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

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

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