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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.92
foomkin
Сообщений: n/a
#1

Переход из Listview в Listview - Android

22.08.2013, 18:40. Просмотров 1639. Ответов 11
Метки нет (Все метки)

Как сделать, что бы когда нажимаешь в главном листвью на кнопку, открывалось новое нужное(т.е. то по которому тапнули) активити с другим списком(листвью)?
Попробывал сделать так, но не работает.

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
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
@SuppressLint("UseValueOf")
public class MainActivity extends Activity {
    
    ListView lvMainlist;
    String[] stmainlist;
    
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    
    lvMainlist = (ListView) findViewById(R.id.lvMainlist);
 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
            this, R.array.stmainlist,
            android.R.layout.simple_list_item_1);
    lvMainlist.setAdapter(adapter);
 
    lvMainlist.setOnItemClickListener(new OnItemClickListener()
    {
 
        public void onItemClick(AdapterView<?> parent, View view, int position,
                long id) {
    
            
            Intent intent = null;
            switch (Integer.parseInt(view.getTag().toString()))
            {
            case 0:
                intent = new Intent(getBaseContext(), FirstActivity.class);break;
            case 1:
                intent = new Intent(getBaseContext(), SecondActivity.class);break;
                        case 2:
                intent = new Intent(getBaseContext(), ThirdActivity.class);break;
            }
            
    startActivity(intent);
        }
 
    });
  }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2013, 18:40     Переход из Listview в Listview
Посмотрите здесь:

Разбиение ListView Android
Работа с Listview Android
Android Работа с Listview
Android listView с подзагрузкой
Android Timer в ListView
отображение Listview Android
Android spinner в ListView
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
22.08.2013, 20:26     Переход из Listview в Listview #2
Java
1
switch (position)
foomkin
Сообщений: n/a
22.08.2013, 20:55     Переход из Listview в Listview #3
Помогло!!!
Le1b
5 / 0 / 1
Регистрация: 14.01.2013
Сообщений: 63
24.09.2013, 17:17     Переход из Listview в Listview #4
Дабы не создавать новую тему спрошу сдесь.
В главной активити в ListView загружаеться массив section_arr:
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
lstViewMain = (ListView)findViewById(R.id.listview);
        
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.sections_arr, android.R.layout.simple_list_item_1);
        lstViewMain.setAdapter(adapter);
        lstViewMain.setTextFilterEnabled(true);
        
        lstViewMain.setOnItemClickListener(new OnItemClickListener()
        {
            public void onItemClick(AdapterView<?> a, View v, int position, long id)
            {
                String itemname = new Integer(position).toString();
                
                Intent intent = new Intent();
                
                intent.setClass(MainActivity.this, SubsectionsViewActivity.class);
                
                Bundle bundle = new Bundle();
                
                bundle.putString("defStrID", itemname);
                
                intent.putExtras(bundle);
                startActivity(intent);
            }
        }
                
        );
Передаем во второе активити номер эллемента по которому тапнули, и составляем имя массива который нужно загрузить в ListView во втором активити:

Java
1
2
3
4
5
Bundle bundle = getIntent().getExtras();
        String itemname = "R.array.subsection_arr_" + bundle.getString("defStrID");
        
        lstViewSubsections = (ListView)findViewById(R.id.lstsubsections);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, itemname, android.R.layout.simple_list_item_1);
Но ArrayAdapter принимает второй параметр тип int. Как быть в таком случае? Может попробывать реализовать это в главном активити?
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 647
24.09.2013, 18:26     Переход из Listview в Listview #5
Цитата Сообщение от Le1b Посмотреть сообщение
itemname
А это что у вас и где?

Добавлено через 36 минут
Увидел
Le1b
5 / 0 / 1
Регистрация: 14.01.2013
Сообщений: 63
24.09.2013, 18:35     Переход из Listview в Listview #6
Будет ли корректно сделать вот так?
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
ArrayAdapter<CharSequence> adapter = null;
        switch (itemname) {
        case 0:
            adapter = ArrayAdapter.createFromResource(this, R.array.subsection_arr_1, android.R.layout.simple_list_item_1);
            break;
        case 1:
            adapter = ArrayAdapter.createFromResource(this, R.array.subsection_arr_2, android.R.layout.simple_list_item_1);
            break;
        case 2:
            adapter = ArrayAdapter.createFromResource(this, R.array.subsection_arr_3, android.R.layout.simple_list_item_1);
            break;
        case 3:
            adapter = ArrayAdapter.createFromResource(this, R.array.subsection_arr_4, android.R.layout.simple_list_item_1);
            break;
        case 4:
            adapter = ArrayAdapter.createFromResource(this, R.array.subsection_arr_5, android.R.layout.simple_list_item_1);
            break;
        case 5:
            adapter = ArrayAdapter.createFromResource(this, R.array.subsection_arr_6, android.R.layout.simple_list_item_1);
            break;
        case 6:
            adapter = ArrayAdapter.createFromResource(this, R.array.subsection_arr_7, android.R.layout.simple_list_item_1);
            break;
 
        default:
            break;
        }
        lstViewSubsections.setAdapter(adapter);
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
24.09.2013, 18:37     Переход из Listview в Listview #7
А почему бы не передать интентом сразу id массива ? R.array.subsection_arr_1, например для первой позици и т.д.
Le1b
5 / 0 / 1
Регистрация: 14.01.2013
Сообщений: 63
24.09.2013, 18:49     Переход из Listview в Listview #8
Имеете ввиду вот так?
Java
1
2
3
4
5
6
7
8
9
String itemname = "R.array.subsection_arr_" + position;
                
                Intent intent = new Intent();
                
                intent.setClass(MainActivity.this, SubsectionsViewActivity.class);
                
                Bundle bundle = new Bundle();
                
                bundle.putString("defStrID", itemname)
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
24.09.2013, 19:10     Переход из Listview в Listview #9
Нет.
Java
1
2
3
4
5
6
public static final int [] arr = {R.array.subsection_arr_1, R.array.subsection_arr_2, R.array.subsection_arr_3, ...};
 
Intent intent = new Intent();
intent.setClass(MainActivity.this, SubsectionsViewActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("array_id", arr[position]);
Le1b
5 / 0 / 1
Регистрация: 14.01.2013
Сообщений: 63
24.09.2013, 19:22     Переход из Listview в Listview #10
Да так короче, только теперь проблема с третим активити.
Java
1
2
3
4
5
6
7
Intent intent = new Intent();
                intent.setClass(SubsectionsViewActivity.this, ViewActivity.class);
                
                Bundle bundle = new Bundle();
                bundle.putInt("defStrID", itemname);
                bundle.putInt("strSubID", position);
                intent.putExtras(bundle);
Третие активити:
Java
1
2
Bundle bundle = getIntent().getExtras();
        String itemname = "n" + bundle.getInt("defStrID") + "s" + bundle.getInt("strSubID");
Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
24.09.2013, 19:29     Переход из Listview в Listview #11
Java
1
2
Bundle bundle = getIntent().getExtras();
int arrayPos= bundle.getInt("array_id");
дальше.
Java
1
int arrayId = SubsectionsViewActivity.arr[arrayPos];
и потом адаптер:
Java
1
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, arrayId, android.R.layout.simple_list_item_1);
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2016, 19:15     Переход из Listview в Listview
Еще ссылки по теме:

Переход на новое activity с элемента listView, заполненного через SimpleCursorAdapter Android
Android Изменить ListView
Глючит ListView Android
Альтернатива ListView Android
Android Переход с элемента listView на activity

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

Или воспользуйтесь поиском по форуму:
Dull
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 1
30.04.2016, 19:15     Переход из Listview в Listview #12
Здрасте, каким образом можно в зависимости от условия из нескольких массивов, выбрав оди вставить в адаптер.
ListView listView = (ListView) findViewById(R.id.listView);

listView.setAdapter(
new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, head_array));
listView.setTextFilterEnabled(true);
Yandex
Объявления
30.04.2016, 19:15     Переход из Listview в Listview
Ответ Создать тему
Опции темы

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