Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
SherlockH
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 32
1

Из ListView на новую Activity

29.09.2013, 21:32. Просмотров 2350. Ответов 6
Метки нет (Все метки)

Доброго времени суток!
Я делал приложение в котором из "главного меню" осуществляется переход на новую Activity. В том Activity используется ListView, который отображает 50 строк с названиями городов.
Так вот, нужно было чтобы по нажатию на название определённого города выводилось новое Activity с информацией уникальной для каждого города, но опять же в ListView.
Ниже представлен мой Activity для осуществления перехода к информации о городе. Но переход не производиться. Словно не обрабатывается нажатие на пункт списка.
Помогите, пожалуйста! Может в коде что-то не так реализовано.
P.S.: В программировании под Android я новичок. Да, и Java освоена лишь "поверхностно". Не судите строго.
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
package ru.project.testinfomats;
 
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
 
public class ListCitiesAndDistrictsOfRT extends ListActivity {
    String[] List = new String[] {
            "Агрыз", "Азнакаево", "Аксубаево", "Актаныш", "Альметьевск", "Апастово", "Арск", "Бавлы",
            "Базарные Матаки", "Балтаси", "Богатые Сабы", "Болгар", "Большая Атня", "Большие Кайбицы",
            "Бугульма", "Верхний Услон", "Высокая Гора", "Джалиль", "Елабуга", "Заинск", "Зеленодольск",
            "Казань (Авиастроительный район)", "Казань (Вахитовский район)", "Казань (Кировский район)",
            "Казань (Московский район)", "Казань (Ново-Савиновский район)", "Казань (Приволжский район)",
            "Казань (Советский район)", "Камские Поляны", "Камское Устье", "Кукмор", "Лаишево", "Лениногорск",
            "Мамадыш", "Менделеевск", "Мензелинск", "Муслюмово", "Набережные Моркваши", "Набережные Челны",
            "Нижнекамск", "Новошешминск", "Нурлат", "Пестрецы", "Рыбная Слобода", "Старое Дрожжаное", "Тетюши",
            "Тюлячи", "Уруссу", "Черемшан", "Чистополь"
    }; 
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_cities_and_districts_layout);
        
        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, List));
    }
    
    public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
        switch (Integer.parseInt(arg1.getTag().toString())) {
            case 0:
                Intent agryz = new Intent(ListCitiesAndDistrictsOfRT.this, Agryz.class);
                startActivity(agryz);
            case 1:
                Intent aznakaevo = new Intent(ListCitiesAndDistrictsOfRT.this, Aznakaevo.class);
                startActivity(aznakaevo);
        }        
    };
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2013, 21:32
Ответы с готовыми решениями:

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

Переход на новую activity
возникла проблема как определить какая кнопка была нажата на другой форме,...

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

Передать данные из диалога ListView родительскому Activity
Нашел код в котором создается диалоговое окно, в нем вводятся данные и эти...

Как динамически заполнять ListView из другой activity?
Нужна помощь! Как динамически заполнять ListView из другой активности?...

6
lavan
53 / 53 / 8
Регистрация: 21.03.2009
Сообщений: 371
29.09.2013, 22:13 2
вы забыли зарегистрировать listener
Java
1
2
3
ListView lv;
...
lv.setOnItemClickListener(obj);
и в самом листенере
Java
1
2
3
4
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) {
        switch (position) {
        }        
    };
0
SherlockH
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 32
30.09.2013, 15:33  [ТС] 3
Простите, за глупый вопрос: но куда нужно прописать =>
Java
1
lv.setOnItemClickListener(obj);
0
ratcatcher
10 / 10 / 5
Регистрация: 14.09.2013
Сообщений: 17
30.09.2013, 16:08 4
Если ваша активность - подкласс ListActivity, следует переопределять метод onListItemClick:
(вот, взял из исходников ListActivity):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
/**
     * This method will be called when an item in the list is selected.
     * Subclasses should override. Subclasses can call
     * getListView().getItemAtPosition(position) if they need to access the
     * data associated with the selected item.
     *
     * @param l The ListView where the click happened
     * @param v The view that was clicked within the ListView
     * @param position The position of the view in the list
     * @param id The row id of the item that was clicked
     */
    protected void onListItemClick(ListView l, View v, int position, long id) {
    }
Кроме того, как я понял, вы собираетесь для вывода информации о каждом городе создать свой класс активности - зачем? Такую программу очень сложно расширять в дальнейшем, у вас будет 50 почти одинаковых классов активностей. Лучше создать один класс - какую-нибудь CityInfoActivity, и передавать ей название города через Intent.putExtra("CITY_NAME", cityName).
Например, так:
Java
1
2
3
4
5
6
7
@Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        String cityName = getListView().getItemAtPosition(position).toString();
        Intent showInfo = new (ListCitiesAndDistrictsOfRT.this, CityInfoActivity.class);
        showInfo.putExtra("CITY_NAME", cityName);
        startActivity(showInfo);
    }
1
SherlockH
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 32
30.09.2013, 17:25  [ТС] 5
Можно подробнее...
Что, где и как реализовать?

Добавлено через 30 минут
Всем спасибо!
Всё заработало... Хотя код будет написан не в лучших традициях, как упоминал ratcatcher. Но всё будет работать!!! Спасибо вам!
P.S.: Там не хватало:
Java
1
break;
0
Acondbly
0 / 0 / 0
Регистрация: 18.10.2014
Сообщений: 1
22.10.2014, 11:05 6
Можете помочь как у вас заработало?
0
SherlockH
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 32
22.10.2014, 20:41  [ТС] 7
В теле "case" был нужен break:
Java
1
2
3
4
5
case 1:
* * * * * * * * Intent aznakaevo = new Intent(ListCitiesAndDistrictsOfRT.this, Aznakaevo.class);
* * * * * * * * startActivity(aznakaevo);
                [B]break;[/B]
* * * * }
Пусть на "костылях", но работает! =)
0
22.10.2014, 20:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2014, 20:41

Восстановление позиции ListView по возвращении из другого Activity
Доброго времени суток. Имеется activity с ListView, заполняемого из базы...

Программа выдаёт ошибку при переходе в новую activity
При переходе в новую activity приложение вылетает. ниже приведен код того...

Передать данные при клике на listview в другое activity
Подсксжите пожалуйста, как мне при клике на listview заполненный с помощью...


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

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

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