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

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

Войти
Регистрация
Восстановить пароль
 
rus_artur4ik
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 31
#1

Как обращаться к кнопке из массива методом switch? - Программирование Android

02.06.2014, 08:32. Просмотров 767. Ответов 5
Метки нет (Все метки)

Всем привет!

Создал массив кнопок:
Java
1
Button buttons[] = new Button[100];
А как обращаться к кнопкам из массива методом switch я не знаю((
Только не надо давать ссылки на книги на озоне.

Спасибо!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2014, 08:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как обращаться к кнопке из массива методом switch? (Программирование Android):

Как обращаться к элементам массива структур - C (СИ)
Допустим, что у меня есть структура default, имеющая под собой некоторое количество элементов типа char по имени number, и есть ссылка на...

Как обращаться к элементам двумерного массива? - C++
У меня та же ошибка в программе #include <conio.h> #include <stdio.h> #include <math.h> #define N 4 #define M 3 void main...

Как обращаться к элементу массива записей? - Delphi
Здравствуйте подскажите нигде не могу найти мне нужно работать с массивом записей, но справочной информации по тому например как...

Как обращаться к элементам массива в моем случае? - Assembler
#include <stdio.h> #include <conio.h> extern int asmproc(int matrix, int dimension); main() { int dim = 3; int matrix = {5,...

Как обращаться к ячейкам динамического массива, переданного в функцию? - C (СИ)
Попытки присвоить значение или вывести на печать содержимое ячейки динамического массива заканчиваются Segmentation fault. Как правильно...

Как сделать чтобы Switch работал в другом Switch'e? - C (СИ)
Как сделать что бы Switch работал в другом Switch'e? Вот допустим выбираем один пункт и в зависимости от выбранного нами пункта последующие...

5
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
02.06.2014, 09:54 #2
Этой строчкой вы лишь создали массив ссылок на Button. Все ссылки сейчас равны null, поэтому сейчас массив нужно заполнить:
Java
1
2
3
4
        Button buttons[] = new Button[100];
        for (int i=0 ; i<100; i++) { 
            buttons[i] = new Button(getApplicationContext());
        }
Ну а потом можно обращаться к элементам массива и делать с кнопками что угодно:

Java
1
2
        buttons[0].setText("test");
        buttons[1].setBackgroundColor(Color.RED);
А как обращаться к кнопкам из массива методом switch я не знаю
Опишите поподробнее этот момент
0
rus_artur4ik
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 31
03.06.2014, 00:11  [ТС] #3
angryrobot,
Цитата Сообщение от angryrobot Посмотреть сообщение
Опишите поподробнее этот момент
Я хотел создать onClickListener, чтобы активити использовался в качестве обработчика (На сколько я знаю - это самый экономный способ).

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class MainActivity extends Activity implements OnClickListener {
 
...
 
@Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (?) {   // Не понятно что писать
        case ?:    // Тут тоже
            buttons[0].setText("asdf");   // Любой код
            break;
        }
    }
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
03.06.2014, 08:28 #4
Если у вас массив new Button[100], то 100 case будете писать?
А по сути надо получать int кнопки и с ним работать.
0
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 564
03.06.2014, 10:10 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от rus_artur4ik Посмотреть сообщение
Я хотел создать onClickListener, чтобы активити использовался в качестве обработчика (На сколько я знаю - это самый экономный способ).
Нужно назначить каждой кнопке уникальный идентификатор и задать для неё один и тот же обработчик нажатия. А внутри обработчика, проверять этот идентификатор:

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
public class MainActivity extends ActionBarActivity implements OnClickListener {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        Button buttons[] = new Button[100];
        for (int i=0 ; i<100; i++) { 
            buttons[i] = new Button(getApplicationContext());
            //Назначаем идентификатор
            buttons[i].setId(i);
            //Назначаем листенер
            buttons[i].setOnClickListener(this);
        }
    }
    
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case 0:
            ((Button) v).setText("test1111");
            break;
        case 1:
            ((Button) v).setText("test2222");
            break;
        case 2:
            ((Button) v).setText("test3333");
            break;
        /// итд
        default:
            break;
        }
    }
 
}
1
rus_artur4ik
0 / 0 / 0
Регистрация: 05.05.2014
Сообщений: 31
03.06.2014, 11:55  [ТС] #6
Rube,
Цитата Сообщение от Rube Посмотреть сообщение
Если у вас массив new Button[100], то 100 case будете писать?
А по сути надо получать int кнопки и с ним работать.
А как?

Добавлено через 9 минут
angryrobot,
Спасибо вам большое, все работает!
0
03.06.2014, 11:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2014, 11:55
Привет! Вот еще темы с ответами:

Как сделать на кнопке индексы! (То есть формула на кнопке)! - C++ Builder
Как сделать на кнопке индексы! (То есть формула на кнопке)!

Найти минимальный элемент массива (через указатели, запрещено обращаться к элементам массива по индексам) - C++
Написать программу, создающую массив из 10 случайных целых чисел из отрезка . Вывести на экран весь массив и на ...

Как создавать новые экземпляры класса и как к ним обращаться? - Visual Basic .NET
создал класс Public Class book Public Property strname As String Public Property strautor As String Public Property...

как создать вектор из векторов и как потом к нему обращаться? - C++
Банальный вопрос - как создать вектор из векторов и как потом к нему обращаться? вот vector&lt;int&gt; a; - это, понятное дело, вектор а, а вот...


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

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

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