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

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

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

Хочу сделать подписи к меню, меню у меня создано ListView, есть два массива, как их передать в адаптер? - Программирование Android

25.11.2013, 15:27. Просмотров 595. Ответов 2
Метки нет (Все метки)

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
public class MainMenu extends ListActivity {
 
public void onCreate(Bundle cicle) {
 
    super.onCreate(cicle);
    setContentView(R.layout.menu_main);
 
    String[] catnames = getResources().getStringArray(R.array.cat_names);
 
// String[] catnames1 = getResources().getStringArray(R.array.label1); - здесь у меня второй массив с подписями. 
 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
            R.layout.rowlayout, R.id.label, catnames);
 
    setListAdapter(adapter);
 
}
 
protected void onListItemClick(ListView l, View v, int position, long id) {
 
    Intent intent = null;
 
    switch (position) {
 
    case 0:
        intent = new Intent(this, AboutStudio.class);
        break;
    case 1:
        intent = new Intent(this, Works.class);
        break;
    case 2:
        intent = new Intent(this, Service.class);
        break;
 
    case 3:
        intent = new Intent(this, News.class);
        break;
 
    case 4:
        intent = new Intent(this, Contacts.class);
        break;
 
    case 5:
        intent = new Intent(this, Team.class);
        break;
    case 6:
        intent = new Intent(this, GoogMap.class);
        break;
 
    }
    startActivity(intent);
 
}
Могу ли я передать это: String[] catnames1 = getResources().getStringArray(R.array.label1) вместе с этим String[] catnames = getResources().getStringArray(R.array.cat_names); сюда >> ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.rowlayout, R.id.label, catnames); Если могу, то через что и как?

Добавлено через 3 часа 25 минут
Я просто поверить не могу, что бы создать item нужно накатать кучу громоздкого кода... Все таки как можно как то умять все в несколько строк.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2013, 15:27     Хочу сделать подписи к меню, меню у меня создано ListView, есть два массива, как их передать в адаптер?
Посмотрите здесь:
Как реализовать трехуровневое меню в ListView? Android
Android По умолчанию меню тулбара является прозрачным и сливается с фоном, как изменить фон текста меню?
Android ListView и контекстное меню
Android Контекстное меню в ListView
Как в эклипсе сделать меню? Android
Android Подскажите как сделать Slide меню
Android Подскажите как сделать подобное меню
Как сделать меню аккордеон в Android приложении Android
Android Выпадающее меню для каждого пункта ListView
Как сделать общее системное меню для всех активностей? Android
Как сделать меню в шаблоне Google maps Activity Android studio Android
Как правильно построить адаптер для показа данных из базы в ListView Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
25.11.2013, 16:57     Хочу сделать подписи к меню, меню у меня создано ListView, есть два массива, как их передать в адаптер? #2
Пишите кастомный адаптер. там не так уж и много нужно делать.
konrads
2 / 2 / 0
Регистрация: 05.03.2013
Сообщений: 42
26.11.2013, 13:33     Хочу сделать подписи к меню, меню у меня создано ListView, есть два массива, как их передать в адаптер? #3
Используйте SimpleAdapter

Создайте в res.layout файл например mytable.xml
приблизительно такой:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
 
        <TextView
            android:id="@+id/field1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
 
        <TextView
            android:id="@+id/field2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1" />
 
    </LinearLayout>
В программе:

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
final String ATTRIBUTE_CATNAMES1 = "names1";
final String ATTRIBUTE_CATNAMES2 = "names2";
......
......
            
ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>(catnames.length);
Map<String, Object> m;
 
......
......
 
for (int i = 0; i < catnames.length; i++) {
    m = new HashMap<String, Object>();
    m.put(ATTRIBUTE_CATNAMES1, catnames[i]);
    m.put(ATTRIBUTE_CATNAMES2, catnames1[i]);
    data.add(m);
}
......
......
// массив имен атрибутов, из которых будут читаться данные
String[] from = { ATTRIBUTE_CATNAMES1, ATTRIBUTE_CATNAMES2 };
            
// массив ID View-компонентов, в которые будут вставлять данные
int[] to = { R.id.field1, R.id.field2 };  // id из созданного нами xml файла
 
// создаем адаптер
SimpleAdapter sAdapter = new SimpleAdapter(this, data, R.mytable, from, to);
 
// присваиваем списку адаптер
ListView lv = (ListView) findViewById(R.id.MyListView);
lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
lv.setAdapter(sAdapter);
Приблизительно так, писал быстро, ошибки могут быть, но направление верное на мой взгляд
Ответ Создать тему
Опции темы

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