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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
SherlockH
0 / 0 / 0
Регистрация: 29.08.2013
Сообщений: 32
#1

Из ListView на новую Activity - Программирование Android

29.09.2013, 21:32. Просмотров 1908. Ответов 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 (Программирование Android):

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

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

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

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

Передать данные из диалога ListView родительскому Activity - Программирование Android
Нашел код в котором создается диалоговое окно, в нем вводятся данные и эти данные передаются родителю. Вот код: res/layout/main.xml ...

Как вместо названия Activity подставить элемент ListView? - Программирование Android
В приложении 2 Activity - MainActivity и DetailActivity. При запуске приложения открывается MainActivity, где отображается список из...

6
lavan
53 / 53 / 1
Регистрация: 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 / 0
Регистрация: 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
22.10.2014, 11:05 #6
Можете помочь как у вас заработало?
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 (где задействован SimpleAdapter) - Программирование Android
Привет Всем! Я купил себе android... и вдруг возникли мысли ...почему бы не сделать приложения.... и не изучить вообщем язык...

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

Можно ли обработать два ListView в пределах одного activity на android? - Программирование Android
Делаю небольшое приложение, которое показывает несколько ListView через ViewFlipper. Для обработки кликов использую найденный на...

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


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

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

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