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

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

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

Переход из Listview в Listview - Программирование Android

22.08.2013, 18:40. Просмотров 1747. Ответов 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 (Программирование Android):

Listview вывод данных и переход по нажатию на другой Listview SQLite - Программирование Android
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с пытаюсь написать программу где первый экран...

Переход с элемента listView на activity - Программирование Android
никак не возьму в толк, каким образом можно реализовать переход на новое activity с элемента listView, чтобы при нажатии на 1 строку...

ListView. После добавления кнопки перестал быть доступен сам ListView - Программирование Android
Кастомизировал ListView с помощью нескольких TextView. Но после того, как добавил ImageButton сам список стал недоступен для клика, а...

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

Переход на новое activity с элемента listView, заполненного через SimpleCursorAdapter - Программирование Android
Здравствуйте! Помогите разобраться с такой проблемой: Есть список listView, который получает данные из БД через SimpleCursorAdapter. По...

ListView, ToggleButton, SQLite, CursorAdapter. Как найти idItem в ListView, где была нажата ToggleButton? - Программирование Android
Добрый день. Затрудняюсь понять один момент: У меня есть ListView, который заполнен Items. Каждый Item - это свой XML. Пока...

11
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
22.08.2013, 20:26 #2
Java
1
switch (position)
1
foomkin
Сообщений: n/a
22.08.2013, 20:55 #3
Помогло!!!
Le1b
5 / 0 / 1
Регистрация: 14.01.2013
Сообщений: 63
24.09.2013, 17:17 #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. Как быть в таком случае? Может попробывать реализовать это в главном активити?
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
24.09.2013, 18:26 #5
Цитата Сообщение от Le1b Посмотреть сообщение
itemname
А это что у вас и где?

Добавлено через 36 минут
Увидел
0
Le1b
5 / 0 / 1
Регистрация: 14.01.2013
Сообщений: 63
24.09.2013, 18:35 #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);
0
Netscape
373 / 360 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
24.09.2013, 18:37 #7
А почему бы не передать интентом сразу id массива ? R.array.subsection_arr_1, например для первой позици и т.д.
0
Le1b
5 / 0 / 1
Регистрация: 14.01.2013
Сообщений: 63
24.09.2013, 18:49 #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)
0
Netscape
373 / 360 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
24.09.2013, 19:10 #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]);
0
Le1b
5 / 0 / 1
Регистрация: 14.01.2013
Сообщений: 63
24.09.2013, 19:22 #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");
0
Netscape
373 / 360 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
24.09.2013, 19:29 #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);
1
Dull
0 / 0 / 0
Регистрация: 25.11.2015
Сообщений: 1
30.04.2016, 19:15 #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);
0
30.04.2016, 19:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.04.2016, 19:15
Привет! Вот еще темы с ответами:

Копирование данных из 1 listView во 2 listView - Программирование Android
Нужно что бы при нажатии на один элемент в первом ListView он копировался во второй ListView причём многократно.Но я использую...

Использование ListView в ListView - Программирование Android
Всем привет. Можете показать как использовать ListView в ListView, с заполнением как внешнего ListView, так и внутреннего причем с...

ListView - Программирование Android
Как в ListView задавать значения Sub Item?

Listview - Программирование Android
Добрый день, В структуре ListView есть два элемента,которые он показывает Item и SubItem. В Item вставить значение не проблема,всё...


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

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

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