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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Ахмедчик
6 / 6 / 0
Регистрация: 29.06.2012
Сообщений: 183
#1

Событие ListView itemClick - Программирование Android

24.06.2013, 17:31. Просмотров 1375. Ответов 15
Метки нет (Все метки)

Всем доброго времени суток.
Друзья помогите пожалуйста, ни как не могу разобраться.
У меня есть ListView в нем есть пункты, при нажатии на пункт выводится название выбранного пункта и положение в списке.

Как сделать так, чтоб при нажатии открылась другая форма или как это называется другое Активити (tarifs.xml).

PS. Пожалуйста не судите строго, в этом я новичек и данный пример я делал по видеоуроку на английском, все что мог сделал, а дальше не могу, надеюсь на вашу помощь и поддержку


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void registerClickCallback() {
        ListView list =(ListView) findViewById(R.id.carsListView);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener(){
 
            @Override
            public void onItemClick(AdapterView<?> parent, View viewCliced,
                    int position, long id) {
                Car clickedCar =mycars.get(position);
                String message="Вы выбрали объкт № " + position
                        + " наименование " + clickedCar.getMake();
                Toast.makeText(MainActivity.this, message,Toast.LENGTH_LONG).show();
                //Вот тут по моему надо что то написать, но не знаю что
            }
            
            
        });
        
    }
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2013, 17:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Событие ListView itemClick (Программирование Android):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
24.06.2013, 17:40 #2
http://developer.android.com/trainin...-activity.html
0
Ахмедчик
6 / 6 / 0
Регистрация: 29.06.2012
Сообщений: 183
24.06.2013, 17:53  [ТС] #3
Прочитал 4 раза, не смог((
У меня есть tarifs.xml в res/layout
Есть tarifs.java src/com.example.helper (но она пустая)

пожалуйста как то донесите меня что надо написать чтоб, при нажатии на итем появилась новое окно
0
Maxtron
50 / 50 / 3
Регистрация: 17.11.2012
Сообщений: 228
Записей в блоге: 1
24.06.2013, 18:44 #4
Цитата Сообщение от Ахмедчик Посмотреть сообщение
Прочитал 4 раза, не смог((
У меня есть tarifs.xml в res/layout
Есть tarifs.java src/com.example.helper (но она пустая)

пожалуйста как то донесите меня что надо написать чтоб, при нажатии на итем появилась новое окно
Здесь все понятно и доступно написано:
http://startandroid.ru/ru/uroki/vse-...-activity.html
1
Ахмедчик
6 / 6 / 0
Регистрация: 29.06.2012
Сообщений: 183
24.06.2013, 20:10  [ТС] #5
Я извиняюсь, но у меня не получается, я создал как надо новый Activity (tarifsall.java) в манифест добавил, есть tarifs.xml но теперь не знаю где именно в Main_Activity написать чтоб при клике на item ListView появилась новое Activity. Пожалуйста помогите разобраться, а примеры доходчивые если работать с кнопкой.

Вот весь код моего активити и весь проект во вложении

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
package com.example.helper;
 
import java.util.ArrayList;
import java.util.List;
 
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
 
public class MainActivity extends Activity {
    private List<Car> mycars = new ArrayList<Car>();
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //savedInstanceState.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.main);
        
        populateCarList();
        populateListView();
        registerClickCallback();
        
        
    }
 
 
    
 
 
    
 
 
 
 
    private void populateCarList() {
        mycars.add(new Car("Тарифы", 18, R.drawable.moneys, "Информация о тарифах" ));
        mycars.add(new Car("Интернет тарифы", 7, R.drawable.interneto, "Тарифы для интернета" ));
        mycars.add(new Car("Corporate", 9, R.drawable.corp, "Корпоративные тарифы" ));
        mycars.add(new Car("Бонусы", 3, R.drawable.bonus, "Скидки и Tcell Bonus" ));
        mycars.add(new Car("Услуги", 23, R.drawable.uslugi, "Информация об услугах" ));
        mycars.add(new Car("Акции", 5, R.drawable.acsii, "Информация об акциях" ));
        mycars.add(new Car("Симфония", 30, R.drawable.simf, "Мелодии вместо гудка" ));
        mycars.add(new Car("Личный кабинет", 1, R.drawable.lich, "Детализация и информация" ));
        mycars.add(new Car("Справочник", 2, R.drawable.sprav, "Коды стран и расценки" ));
        mycars.add(new Car("Роуминг", 3, R.drawable.rouming, "Тарификация в роуминге" ));
        mycars.add(new Car("Speed Test", 9, R.drawable.sptest, "Скорость соединения" ));
        mycars.add(new Car("О программе", 9, R.drawable.instr, "Правила пользования" ));
        
    }
    private void populateListView() {
        ArrayAdapter<Car> adapter=new MyListAdapter();
        ListView list=(ListView) findViewById(R.id.carsListView);
        list.setAdapter(adapter);
        
        
    }
    
    private void registerClickCallback() {
        ListView list =(ListView) findViewById(R.id.carsListView);
        list.setOnItemClickListener(new AdapterView.OnItemClickListener(){
 
            @Override
            public void onItemClick(AdapterView<?> parent, View viewCliced,
                    int position, long id) {
                Car clickedCar =mycars.get(position);
                String message="Вы выбрали объкт № " + position
                        + " наименование " + clickedCar.getMake();
                Toast.makeText(MainActivity.this, message,Toast.LENGTH_LONG).show();
                
            }
            
            
        });
        
    }
    
    private class MyListAdapter extends ArrayAdapter<Car>{
        
        public MyListAdapter(){
            super (MainActivity.this, R.layout.item_view, mycars);
                    }
 
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
             
            View itemView=convertView;
            if(itemView==null){
                itemView = getLayoutInflater().inflate(R.layout.item_view, parent, false);
                
            }
            
            Car currentCar=mycars.get(position);
            
            
            ImageView imageView=(ImageView)itemView.findViewById(R.id.item_icon);
            imageView.setImageResource(currentCar.getIconID());
            
            TextView makeText=(TextView)itemView.findViewById(R.id.item_txtMake);
            makeText.setText(currentCar.getMake());
            
            TextView yearText=(TextView)itemView.findViewById(R.id.item_txtYear);
            yearText.setText("" + currentCar.getYear());
                    
            TextView conditionText=(TextView)itemView.findViewById(R.id.item_txtCondition);
            conditionText.setText(currentCar.getcondition());
            
            return itemView;
            
        }
    
    
 
    
    }
    
 
}
0
Вложения
Тип файла: rar MobileHelper.rar (3.48 Мб, 12 просмотров)
Maxtron
50 / 50 / 3
Регистрация: 17.11.2012
Сообщений: 228
Записей в блоге: 1
24.06.2013, 20:20 #6
То, что вам нужно:
http://stackoverflow.com/questions/3...-view-on-click
0
Ахмедчик
6 / 6 / 0
Регистрация: 29.06.2012
Сообщений: 183
28.06.2013, 03:52  [ТС] #7
Не смог(( пожалуйста помогите ведь все файлы уже готовы, Вы просто знаете где писать кнопку на активацию другого активити, пожалуйста помогите, очень нуждаюсь в вашей поддержке. Обещяю больше не буду задавать глупых вопросов. Просто начальство уже требует, моя ошибка в том что начал изучать с потолка, исправлюсь, только помогите... Заранее благодарю
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.06.2013, 10:31 #8
Цитата Сообщение от Ахмедчик Посмотреть сообщение
но теперь не знаю где именно в Main_Activity написать чтоб при клике на item ListView появилась новое Activity
в onItemClick
0
Ахмедчик
6 / 6 / 0
Регистрация: 29.06.2012
Сообщений: 183
28.06.2013, 19:41  [ТС] #9
Вот в этом наш недостаток, вот в этом наш минус! когда человек нуждается в поддержке и не справляется в место того чтобы помочь, мы стараемся избавиться, а земля то круглая. Помогай сегодня ты, завтра тебе тоже помогут.
Лююююди, ведь именно этим качеством мы отличаемся от других, допишите ведь там нужно всего лишь дописать 2-3 строчки, максимум 7-10 минут.
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.06.2013, 19:59 #10
не понятна суть проблемы.
0
Ахмедчик
6 / 6 / 0
Регистрация: 29.06.2012
Сообщений: 183
28.06.2013, 20:08  [ТС] #11
Цитата Сообщение от V0v1k Посмотреть сообщение
не понятна суть проблемы.
Создал список с изображениями по видеоуроку на английском языке. Так и не понял о чем он там говорит, но у меня получалось.

При нажатии на любой пункт из списка на данный момент выводиться сообщение о номере в списке... Мне нужно чтоб при нажатии на пункт списка открылось другое активити, то есть друго окно. Например:

Есть список: Тарифы, услуги, акции... При нажатии на тарифы открывалось Tarifs.xml то есть окно с тарифами.

Помогите совершить просто переход при нажатии на пункт меню. Пожалуйста
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
28.06.2013, 21:15 #12
@Ахмедчик, так а вы сделайте проверку:

Java
1
2
3
4
5
6
if(item.getId == 1){
intent.start(Tarifs.class)
}
if(item.getId == 2){
intent.start(Servies.class)
}
0
chizz
980 / 495 / 54
Регистрация: 19.03.2013
Сообщений: 3,092
Записей в блоге: 18
Завершенные тесты: 1
28.06.2013, 22:05 #13
Создать xml для активити, создать java класс для активити, потом в обработчике кнопки создать intent и запустить активити

Java
1
2
3
4
case R.id.btnActTwo:
      Intent intent = new Intent(this, ActivityTwo.class);
      startActivity(intent);
      break;
0
Ахмедчик
6 / 6 / 0
Регистрация: 29.06.2012
Сообщений: 183
30.06.2013, 18:28  [ТС] #14
Цитата Сообщение от Stylish2013 Посмотреть сообщение
@Ахмедчик, так а вы сделайте проверку:
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
if(item.getId == 1){
intent.start(Tarifs.class)
}
if(item.getId == 2){
intent.start(Servies.class)
}
А где именно в своем коде поставить эту проверку, можете подсказать?
0
Stylish2013
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
30.06.2013, 19:05 #15
Цитата Сообщение от Ахмедчик Посмотреть сообщение
А где именно в своем коде поставить эту проверку, можете подсказать?
Написать нужно в том месте где у вас написано:
Цитата Сообщение от Ахмедчик Посмотреть сообщение
//Вот тут по моему надо что то написать, но не знаю что
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2013, 19:05
Привет! Вот еще темы с ответами:

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

Как вызвать ItemClick для ListView из другой процедуры? - Visual Basic
Помогите решить задачу с ListView Есть событие: Private Sub ListView1_ItemClick(ByVal Item As MSComctlLib.ListItem) .... End SubЯ...

Событие работающее с ListView - Java
Здравствуйте! Пытаюсь научиться работать с JavaFX и создавать графический интерфейс для приложений. Столкнулся с такой проблемой: мне нужно...

Событие MouseClick в ListView - C#
В приложении имеется ListView с 3 колонками. В 3 колонку записываются ссылки, по которым нужно переходить по щелчку мыши. Я сделал вот...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.06.2013, 19:05
Ответ Создать тему
Опции темы

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