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

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

Войти
Регистрация
Восстановить пароль
 
 
yuriy m
0 / 0 / 0
Регистрация: 06.08.2015
Сообщений: 7
#1

Как заменить кнопки ? Бьюсь третьи сутки - Программирование Android

06.08.2015, 23:36. Просмотров 391. Ответов 15
Метки нет (Все метки)

Есть основной экран маин(активити1),на нем допустим шесть кнопок,каждая что-то выполняет при кратком нажатии. При длинном нажатии на любую из этих кнопок,мы попадаем на активити 2 .Где есть много разных кнопок.. При нажатии на любую из них ,я должен ПЕРЕПИСАТЬ кнопку на активити1. Загвоздка в том как определить ,что была нажата ,допустим кнопка 3 на первом активити. Что-бы переписывалась именно эта кнопка в этой позиции ? Или подход должен быть другим ?


http://cs629116.vk.me/v629116597/7dad/m--z_BZZffo.jpg

И еще,ребята,а кто знает,можно ли каким-то способом встроить чужое переложение в свое? То бишь ,допустим берем навител (вызываем через intent и т.д.) и встраиваем его в свою область экрана. Как на примере
http://www.pccar.ru/showpost.php?p=170032&postcou
Спасибо. С уважением Юрий.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.08.2015, 23:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как заменить кнопки ? Бьюсь третьи сутки (Программирование Android):

Бьюсь второй день - Программирование Android
Помогите пожалуйста!Происходит утечка памяти,когда вводишь и даже удаляешь текст из autoCompleteTextView!Я не понимаю почему! Сначала...

Acronis recovery expert проверяет диск третьи сутки - Windows 7
запущена функция Acronis recovery expert проверяет диск и исправляет ошибки.. уже 3 сутки(процесс идет по цифрам видно), но 3-и сутки..??...

.NET 4.x Как несколько раз заменить текст Label по нажатию на кнопки - C#
Я делаю лабу. типо викторины. И мне надо что бы на форме немялись вопросы. Я не как не могу понять как заменить Label и radioButton. То...

Как узнать код нажатия кнопки на джойстике и заменить его на клавиатуре? - Джойстики
Доброго времени суток Уважаемые форумчане. Помогите решить проблему. Имеется программа Novus Managment System. (польская софтина для...

Помогите!!! Бьюсь о Dreamweaver MX - Web
Не могу понять: почему когда тестирую страницу написанную на ASP, то браузер кажет, что страница не может быть отображена (HTTP 500 -...

Бьюсь уже неделю и не могу поставить 7-ку - Windows 7
Помогите пожалуйста!Бьюсь уже неделю и не могу поставить 7-ку.Процесс происходит так:windows is loading files, далее starting windows и...

15
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
07.08.2015, 01:27 #2
как определить ,что была нажата ,допустим кнопка 3 на первом активити
Так же как определяешь какая кнопка нажата, при обработке нажатий нескольких кнопок одним методом. Примерно так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void onLongClick(View v) {
    
    switch(v.getId()) {
        case R.id.button1: 
        команда;
        break;
    case R.id.button2: 
        команда;
        break;
    .....................
    default: 
        оператор;
        break;
    }
}
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
07.08.2015, 08:16 #3
Цитата Сообщение от yuriy m Посмотреть сообщение
как определить ,что была нажата ,допустим кнопка 3
логично что для этого нужно передать информацию с первой активити во вторую
например, можно создать класс application переменные которого можно получить и в первом и во втором активити
0
PaDyra
32 / 32 / 8
Регистрация: 06.01.2012
Сообщений: 142
07.08.2015, 09:52 #4
Цитата Сообщение от Valakin Посмотреть сообщение
логично что для этого нужно передать информацию с первой активити во вторую
Java
1
2
3
Intent intent = new Intent(ClassName.this, TheSecondActivity.class);
intent.putExtra("buttonNumber", 1); // номер кнопки 1, 2, 3... и т.д.
startActivity(intent);
в другом активити просто извлекаете данные и смотрите, какая кнопка была нажата
0
yuriy m
0 / 0 / 0
Регистрация: 06.08.2015
Сообщений: 7
07.08.2015, 10:06  [ТС] #5
Домой приеду выложу код. Как организовано сейчас - при нажатии длительно на любую из кнопок на первом активити, первое ,мы присваиваем переменной id кнопки,тем самым мы знаем какая кнопка была нажата последней. Второе вызываем intent и переходим на другое активити,где много кнопок. При нажатии на любую из кнопок,вы возвращаем Id кнопки из второго в первую активити. А вот дальше начинаются проблемы. Нам же кроме id нужно еще текст и логотип присвоить к кнопке,пусть это громоздко ,но можно организовать... Но почему-то основная проблема вылазит в том ,что кнопки на первой активитм,начинают присваиваться хаотично,Ведь может случится так что на первой активити есть две одинаковые кнопки под одним и темже ID... Вот тогда все получается через Ж. А можно ли как-то отслеживать кнопки не по id ? а допустим по индексу привязанный конкретно к своему месту в лайоут ? Как вообще грамотно организовать алгоритм замены кнопок ?
0
PaDyra
32 / 32 / 8
Регистрация: 06.01.2012
Сообщений: 142
07.08.2015, 10:45 #6
Цитата Сообщение от yuriy m Посмотреть сообщение
Как вообще грамотно организовать алгоритм замены кнопок ?
Что из себя представляет "замена кнопок"? Поменять название, поменять действие на нажатие, или что-то другое?
0
yuriy m
0 / 0 / 0
Регистрация: 06.08.2015
Сообщений: 7
07.08.2015, 11:05  [ТС] #7
Картинка в первом посте. Есть основное активити. На нем допустим шесть кнопок, каждая кнопка имеет свою функцию при нажатии. Допустим при первом запуске программы,после установки,кнопки выполняют функцию по делфолту. Кнопка 1 = функция1,Кнопка 2 = функция2 и т.д. Но существует намного больше функций кнопок,чем может вместить в себя основной экран,допустим 18 . Захотелось допустим мне поменять функции кнопок либо местами из этих шести ,либо заменить какие на те из 12 новых ,которые есть на другом активити. То я нажимаю на кнопку ,длительным нажатием onLongClick допустим на кнопку 2 в первом активити и попадаю на экран второго активити ,где есть 18 кнопок. При нажатии на любую из них ,я автоматом возвращаюсь на первый экран и кнопка №2 уже имеет другую функцию. Которая равняется той кнопке,которую я нажимал на активити 2. Соответственно кнопка 2 ,должна поменять еще и внешний вид (текст,значек,и.т.д). Ну как-то так.
Ну и соответственно ,после выхода из программы ,сохранить свои новые параметры (но это уже другая история...)
0
PaDyra
32 / 32 / 8
Регистрация: 06.01.2012
Сообщений: 142
07.08.2015, 11:11 #8
Цитата Сообщение от yuriy m Посмотреть сообщение
Но существует намного больше функций кнопок,чем может вместить в себя основной экран,допустим 18
ScrollView и ваши проблемы будут решены с количеством кнопок)

Добавлено через 3 минуты
Цитата Сообщение от yuriy m Посмотреть сообщение
При нажатии на любую из них ,я автоматом возвращаюсь на первый экран и кнопка №2 уже имеет другую функцию. Которая равняется той кнопке,которую я нажимал на активити 2. Соответственно кнопка 2 ,должна поменять еще и внешний вид (текст,значек,и.т.д). Ну как-то так.
Если хотите именно таким образом делать... то советую использовать Fragment-ы. Одно Activity и просто подгружаете туда нужный фрагмент, соответственно у каждого фрагмента можете описывать любой функционал, и обрабатывать нажатия
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
07.08.2015, 12:40 #9
Ведь может случится так что на первой активити есть две одинаковые кнопки под одним и темже ID...
Не может быть 2-х одинаковых ID
0
Valakin
431 / 97 / 15
Регистрация: 21.02.2015
Сообщений: 731
07.08.2015, 12:59 #10
Цитата Сообщение от Mikalai Посмотреть сообщение
Не может быть 2-х одинаковых ID
да, это точно, тогда бы вся логика рухнула, в файле R можно убедится в этом
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,068
Завершенные тесты: 1
07.08.2015, 12:59 #11
я ба начал с изучения метода startActivityForResult что бы понимать вообще как можно получить ответ от второй активити
0
yuriy m
0 / 0 / 0
Регистрация: 06.08.2015
Сообщений: 7
07.08.2015, 13:48  [ТС] #12
Цитата Сообщение от Паблито Посмотреть сообщение
я ба начал с изучения метода startActivityForResult что бы понимать вообще как можно получить ответ от второй активити
Да с этим все вроде ок,результат я получаю...

Цитата Сообщение от PaDyra Посмотреть сообщение
Если хотите именно таким образом делать... то советую использовать Fragment-ы. Одно Activity и просто подгружаете туда нужный фрагмент, соответственно у каждого фрагмента можете описывать любой функционал, и обрабатывать нажатия
Насчет фрагментов ,я тоже подумываю....

Добавлено через 3 минуты
Цитата Сообщение от PaDyra Посмотреть сообщение
ScrollView и ваши проблемы будут решены с количеством кнопок)
Смотря как можно организовать. Если при длительном нажатии выпадал список,и при выборе ставилась кнопка,то да.
А если одной кнопкой просто список ,то это немного не то...
0
Pablito
2534 / 2013 / 627
Регистрация: 12.05.2014
Сообщений: 7,068
Завершенные тесты: 1
07.08.2015, 13:54 #13
раскрой секрет - распиши что именно будет на этих кнопках, многие пользователи видали много разных компонентов и, вероятно, смогут подсказать как эту задачу решить без всех этих потуг с 18-ю кнопками
0
PaDyra
32 / 32 / 8
Регистрация: 06.01.2012
Сообщений: 142
07.08.2015, 14:58 #14
Цитата Сообщение от yuriy m Посмотреть сообщение
Смотря как можно организовать. Если при длительном нажатии выпадал список,и при выборе ставилась кнопка,то да.
А если одной кнопкой просто список ,то это немного не то...
ScrollView это не список, это полоса прокрутки, и если количество элементов будет больше, чем вмещает экран, то появится бегунок
0
yuriy m
0 / 0 / 0
Регистрация: 06.08.2015
Сообщений: 7
07.08.2015, 16:20  [ТС] #15
Цитата Сообщение от PaDyra Посмотреть сообщение
ScrollView это не список, это полоса прокрутки, и если количество элементов будет больше, чем вмещает экран, то появится бегунок
Нет это не то. Должно выглядеть как на картинке в первом посте...
0
07.08.2015, 16:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.08.2015, 16:20
Привет! Вот еще темы с ответами:

Поменять местами третьи отрицательные элементы массива - C++
1.нужно создать рандомный массив, это получилось... #include <iostream> #include <ctime> #include <qmath.h> const int size = 2; ...

Сколько добавлено за сутки. (как сделать) - PHP
Например, юзеры добавляют запись... Она в БД добавляется. И вот у меня при добавлении в БД, еще добавляется в столбец add_time = time();...

Как сделать выборку данных за сутки с 09:00 до 09:00 - MS Access
Здравствуйте! Я новичок-самоучка. Помогите пожалуйста! Подскажите, как сделать выборку данных за сутки с 09:00 до 09:00 следующего дня. ...

Бьюсь над решением - не достиг приемлемого результата, сложно - Методы оптимизации
Добрый день! Могли бы по возможности подсказать как можно подступиться к решению задачи? Я бьюсь над решением уже год... Сделал две...


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

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

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