Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
foomkin
0 / 0 / 0
Регистрация: 19.08.2013
Сообщений: 2
1

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

22.08.2013, 18:40. Просмотров 1923. Ответов 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);
        }
 
    });
  }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2013, 18:40
Ответы с готовыми решениями:

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

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

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

Данные из SQlite в ListView, обработка события ListView
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные...

Передача данных из ListView в другой Activity в ListView
Добрый день. Пытаюсь разобраться с передачей данных с ListView, но выходит что...

11
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
22.08.2013, 20:26 2
Java
1
switch (position)
1
foomkin
0 / 0 / 0
Регистрация: 19.08.2013
Сообщений: 2
22.08.2013, 20:55 3
Помогло!!!
0
Le1b
5 / 0 / 0
Регистрация: 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 / 0
Регистрация: 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
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
24.09.2013, 18:37 7
А почему бы не передать интентом сразу id массива ? R.array.subsection_arr_1, например для первой позици и т.д.
0
Le1b
5 / 0 / 0
Регистрация: 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
374 / 361 / 52
Регистрация: 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 / 0
Регистрация: 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
374 / 361 / 52
Регистрация: 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

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

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

Копирование данных из 1 listView во 2 listView
Нужно что бы при нажатии на один элемент в первом ListView он копировался во...


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

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

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