7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
1

Как в ListView обработать нажатие кнопки и изменить здесь же значение в textView ?

27.04.2013, 21:16. Показов 10473. Ответов 43
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть ListView, у него есть своя разметка на которой находится строчки на каждой из которых Button и textView. Как мне обработать нажатие кнопки и изменить здесь же значение в textView, например было в textView "0" станет "1". Можно подробнее с примерами кода, так как я новичок.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.04.2013, 21:16
Ответы с готовыми решениями:

Как обработать нажатие на изображение в элементе listView?
Как все знают, listView делится на множество элементов, нажатия на них можно обработать... Но во...

TreeView, ListView, как обработать нажатие мыши
Доброго времени суток коллеги. Проблема в следующем: У меня есть элементы TreeView и ListView,...

Как обработать нажатие кнопки на клавиатуре
Здравствуйте. Пытаюсь написать игру ханойские башни Механика игры: над штырями бегает квадратик...

Как обработать событие ctrl + нажатие кнопки
Добрый день, перечитал все связаные темы тут, никак не могу реализовать. Как обработать...

43
dubok79
28.04.2013, 01:12
  #2

Не по теме:

ну чо сразу с примерами кода? совсем лень покопаться?

0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
28.04.2013, 01:56  [ТС] 3
Цитата Сообщение от dubok79 Посмотреть сообщение

Не по теме:

ну чо сразу с примерами кода? совсем лень покопаться?

если бы я не копался до этого я бы не писал.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 12:01 4
Java
1
2
3
4
5
 button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 textView.setText("text");
             }
         });
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
28.04.2013, 12:21  [ТС] 5
Цитата Сообщение от V0v1k Посмотреть сообщение
Java
1
2
3
4
5
 button.setOnClickListener(new View.OnClickListener() {
             public void onClick(View v) {
                 textView.setText("text");
             }
         });
При использовании такого кода у меня ошибка. На том месте когда идёт инициализация первой строчки. И у меня в листвью много записей и мне нужно чтобы каждая кнопка на листвью выполняла разные действия. а не одно и тоже.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 12:36 6
Цитата Сообщение от Stylish2013 Посмотреть сообщение
При использовании такого кода у меня ошибка. На том месте когда идёт инициализация первой строчки.
какая ошибка?


Цитата Сообщение от Stylish2013 Посмотреть сообщение
И у меня в листвью много записей и мне нужно чтобы каждая кнопка на листвью выполняла разные действия. а не одно и тоже.
не вижу проблемы.
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
28.04.2013, 13:12  [ТС] 7
Вот что выдает LOG

04-28 08:19:02.845: D/AndroidRuntime(274): Shutting down VM
04-28 08:19:02.845: W/dalvikvm(274): threadid=1: thread exiting with uncaught exception (group=0x4001d800)

04-28 09:09:27.824: D/AndroidRuntime(356): Shutting down VM
04-28 09:09:27.824: W/dalvikvm(356): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
04-28 09:09:27.844: E/AndroidRuntime(356): FATAL EXCEPTION: main
04-28 09:09:27.844: E/AndroidRuntime(356): java.lang.RuntimeException: Unable to start activity ComponentInfo{in.wptrafficanalyzer.listviewwithjsonfromurl/ru.nikolaxa.listviewjsonurl.MainActivity}: java.lang.NullPointerException
04-28 09:09:27.844: E/AndroidRuntime(356): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
04-28 09:09:27.844: E/AndroidRuntime(356): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
04-28 09:09:27.844: E/AndroidRuntime(356): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
04-28 09:09:27.844: E/AndroidRuntime(356): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
04-28 09:09:27.844: E/AndroidRuntime(356): at android.os.Handler.dispatchMessage(Handler.java:99)
04-28 09:09:27.844: E/AndroidRuntime(356): at android.os.Looper.loop(Looper.java:123)
04-28 09:09:27.844: E/AndroidRuntime(356): at android.app.ActivityThread.main(ActivityThread.java:4627)
04-28 09:09:27.844: E/AndroidRuntime(356): at java.lang.reflect.Method.invokeNative(Native Method)
04-28 09:09:27.844: E/AndroidRuntime(356): at java.lang.reflect.Method.invoke(Method.java:521)
04-28 09:09:27.844: E/AndroidRuntime(356): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
04-28 09:09:27.844: E/AndroidRuntime(356): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
04-28 09:09:27.844: E/AndroidRuntime(356): at dalvik.system.NativeStart.main(Native Method)
04-28 09:09:27.844: E/AndroidRuntime(356): Caused by: java.lang.NullPointerException
04-28 09:09:27.844: E/AndroidRuntime(356): at ru.nikolaxa.listviewjsonurl.MainActivity.onCreate(MainActivity.java:65)
04-28 09:09:27.844: E/AndroidRuntime(356): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
04-28 09:09:27.844: E/AndroidRuntime(356): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
04-28 09:09:27.844: E/AndroidRuntime(356): ... 11 more
04-28 09:09:30.614: I/global(356): Default buffer size used in BufferedReader constructor. It would be better to be explicit if an 8k-char buffer is required.
04-28 09:09:30.694: D/dalvikvm(356): GC_FOR_MALLOC freed 4997 objects / 321032 bytes in 73ms
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 13:13 8
NullPointerException MainActivity.java:65
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
28.04.2013, 13:33  [ТС] 9
Цитата Сообщение от V0v1k Посмотреть сообщение
NullPointerException MainActivity.java:65
так я и говорю, ошибка. Что делать то?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 13:38 10
не обращаться к не инициализированной переменой.
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
28.04.2013, 13:54  [ТС] 11
Цитата Сообщение от V0v1k Посмотреть сообщение
не обращаться к не инициализированной переменой.
Так она проинициализирована.

Java
1
2
3
4
5
6
7
8
9
10
11
12
Button button;
 
 
        button = (Button) findViewById(R.id.Button01);
        
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                //textView.setText("text");
                
        
            }
        });



Вот таким образом я нажимаю на кнопку и срабатывает нажатие:

Java
1
2
3
4
5
6
7
8
9
public void onMyButtonClick(View v) {
        // создаем и отображаем текстовое уведомление
        Toast toast = Toast.makeText(getApplicationContext(),
                "нажата кнопка!", Toast.LENGTH_SHORT);
        toast.setGravity(Gravity.CENTER, 0, 0);
        toast.show();
 
        startActivity(new Intent(this, Activity2.class));
    }
но как мне узнать на каком iteme она нажата?
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 14:06 12
Цитата Сообщение от Stylish2013 Посмотреть сообщение
Так она проинициализирована.
нет, она null.

Цитата Сообщение от Stylish2013 Посмотреть сообщение
но как мне узнать на каком iteme она нажата?
при добавление кнопки можете в tag записать позицию:
Java
1
button.setTag(position);
потом в onMyButtonClick:
Java
1
v.getTag();
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
28.04.2013, 14:15  [ТС] 13
Цитата Сообщение от V0v1k Посмотреть сообщение
нет, она null.
да она null, но почему она не инициализируется?





Цитата Сообщение от V0v1k Посмотреть сообщение
при добавление кнопки можете в tag записать позицию:
Код Java(TM) 2 Platform Standard Edition 5.0
1
button.setTag(position);
потом в onMyButtonClick:
Код Java(TM) 2 Platform Standard Edition 5.0
1
v.getTag();
не пойму куда это писать везде ругается...
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 14:21 14
Цитата Сообщение от Stylish2013 Посмотреть сообщение
да она null, но почему она не инициализируется?
потому, что ее нет в этот момент на лаяуте.


Цитата Сообщение от Stylish2013 Посмотреть сообщение
не пойму куда это писать везде ругается...
setTag там, где добавляете button на лаяут, а getTag в onMyButtonClick.
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
28.04.2013, 14:46  [ТС] 15
Я извиняюсь за тупление....

Цитата Сообщение от V0v1k Посмотреть сообщение
потому, что ее нет в этот момент на лаяуте.
А где она может быть?
Цитата Сообщение от V0v1k Посмотреть сообщение
setTag там, где добавляете button на лаяут,
Так я его нигде не добавляю он работает просто через onMyButtonClick.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 15:19 16
Цитата Сообщение от Stylish2013 Посмотреть сообщение
А где она может быть?
негде, она еще не добавлена.


Цитата Сообщение от Stylish2013 Посмотреть сообщение
Так я его нигде не добавляю
она по волшебству появляется?
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
28.04.2013, 15:21  [ТС] 17
Вообще запутался
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 15:23 18
учите основы, если вы не разбираетесь в своем коде, то мне откуда знать что вы там понаписывали.
0
7 / 7 / 1
Регистрация: 20.04.2013
Сообщений: 666
28.04.2013, 15:40  [ТС] 19
Цитата Сообщение от V0v1k Посмотреть сообщение
учите основы, если вы не разбираетесь в своем коде, то мне откуда знать что вы там понаписывали.
Понимаю... А вы не могли бы исправить мой проект если я скину его вам целиком??? Пожалуйста очень надо... очень... У вас на это уйдёт я уверен не очень много времени.
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.04.2013, 15:49 20
просто скопируйте сюда код.
0
28.04.2013, 15:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2013, 15:49
Помогаю со студенческими работами здесь

Как обработать событие 'Нажатие апплетовской кнопки' в сервлете ?
Пиплы подскажите не могу найти в доках. Как обработать событие 'Нажатие апплетовской кнопки' в...

Как изменить цвет TextView в виджете нажатием кнопки?
Здравствуйте. Я сделал виджет с часами, но мне нужно сделать так чтобы в настройках приложения...

Обработать нажатие кнопки
Здравствуйте. У меня автоматически создаются девять кнопок, вот так: Button But = new Button;...

Обработать нажатие кнопки в DataGridView
Программисты, помогите, в пятницу курсач сдавать!! Есть datagridview, в ней описаны товары: Тип,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru