Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 2

Узнать какая кнопка вызвала Aktivity

29.10.2019, 16:17. Показов 2123. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые знатоки и профессионалы, прошу Вашей помощи.

я даже не знаю как правильно назвать тему. (У меня нет опыта в написании программ на JAVA)

Суть: Есть Activity где по на жатии кнопки создается список с возможностью редактировать название и удаление элемента пример взят вот отсюда "".
Я немного модернизировал данный проект "Добавил кнопку выбора цвета"
Для выбора цвета использую другое Activity.
После выбора цвета я могу передать строку с кодом выбранного цвета в первое Activity.
А вот присвоить цвет кнопке или элементу ListView я не могу.
Подскажите пожалуйста как.

Вот пример главной Актив

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
public class MainActivity extends Activity  {
 
    //Создаем список вьюх которые будут создаваться
    private List<View> allEds;
    //счетчик чисто декоративный для визуального отображения edittext'ov
    private int counter = 0;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Button addButton = (Button) findViewById(R.id.button);
        //инициализировали наш массив с edittext.aьи
        allEds = new ArrayList<View> ();
 
        //находим наш linear который у нас под кнопкой add edittext в activity_main.xml
        final LinearLayout linear = (LinearLayout) findViewById(R.id.linear);
        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                counter++;
 
                //берем наш кастомный лейаут находим через него все наши кнопки и едит тексты, задаем нужные данные
                final View view = getLayoutInflater().inflate(R.layout.custom_edittext_layout, null);
                Button deleteField = (Button) view.findViewById(R.id.button_delete);
                deleteField.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        try {
                            ((LinearLayout) view.getParent()).removeView(view);
                            allEds.remove(view);
                        } catch(IndexOutOfBoundsException ex) {
                            ex.printStackTrace();
                        }
                    }
                });
                Button colorField = (Button) view.findViewById ( R.id.button_Color );
                colorField.setOnClickListener ( new View.OnClickListener ( ) {
                    @Override
                    public void onClick(View v) {
                        try {
                            Intent intent;
 
                            intent = new Intent (MainActivity.this, SelectColorActivity.class);
 
                            startActivityForResult (intent, 1);//view.getId ()
 
                        } catch(IndexOutOfBoundsException ex) {
                            ex.printStackTrace();
                        }
                    }
                } );
 
                EditText text = (EditText) view.findViewById(R.id.editText);
                text.setText("Some text" + counter);
                //добавляем все что создаем в массив
                allEds.add(view);
                //добавляем елементы в linearlayout
                linear.addView(view);
            }
        });
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 
        if (data == null) {return;}
        //  View view;
        String SetColor = data.getStringExtra("SetColor");
        int ids =(int) data.getIntExtra ( "SetId",0 ) ;
        Log.d("myLogs", "requestCode = " + requestCode + ", resultCode = " + resultCode + ", ids = " + ids);
        //   ((LinearLayout) view.getParent()).removeView(view);
        //   allEds.remove(view);
        Toast.makeText (getBaseContext(), SetColor + " Code: "+ requestCode + "resul:" +resultCode , Toast.LENGTH_SHORT).show ();
        //  tvName.setText("Your name is " + name);
    }
}
вот второе активиту

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
public class SelectColorActivity extends AppCompatActivity {
    int ids;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate ( savedInstanceState );
 
        Bundle argument = getIntent ().getExtras ();
        if(argument != null)
        {
            ids =argument.getInt ("idSend");
        }
 
        setContentView ( R.layout.activity_select_color );
 
 
        GridView palletGridView = (GridView) findViewById ( R.id.palletGridView );
        final ArrayList<Pallet> pallets = Pallet.getPallet ( );
        PalletAdapter palletAdapter = new PalletAdapter ( this, pallets ); //       PalletAdapter palletAdapter = new PalletAdapter(self, pallets);
 
        palletGridView.setAdapter ( palletAdapter );
 
        palletGridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //Toast.makeText (getBaseContext(),pallets.get(position).getColor(), Toast.LENGTH_SHORT).show ();
                Intent intent = new Intent();
                intent.putExtra("SetColor", pallets.get(position).getColor());
                intent.putExtra ("SetId", ids);
                setResult(RESULT_OK, intent);
                finish();
   
            };
           
        });
    }
 
 
}
полный проект прикреплен
Вложения
Тип файла: rar Dynamically.rar (4.56 Мб, 0 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2019, 16:17
Ответы с готовыми решениями:

Как узнать какая форма вызвала форму
Здравствуйте. Извините за название, но ничего другого не придумал. У меня несколько форм (Form1, Form2, ...). Из этих форм я могу...

Как узнать какая из кнопок вызвала DropDown Menu
Динамически создаются кнопки со стилем bsSplitButton, и назначается в качестве DropDownMenu - PopUpMenu из другой формы (внутри одной...

Как узнать какая кнопка нажата?
У меня есть 20 кнопок обработчик события Onclick у всех одинаковый, мне необходимо поменять Caption у нажатой кнопки. Каким образом мне...

2
1570 / 1168 / 426
Регистрация: 08.05.2012
Сообщений: 5,219
29.10.2019, 19:58
Переменную кнопки объявить глобально и менять ей цвет в onActivityResult.
0
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 2
30.10.2019, 19:45  [ТС]
Если переменную объявлять глобально то цвет будет меняться у кнопки последней строки.

Я заранее не могу знать сколько элементов будет создано.
Создается динамический массив.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.10.2019, 19:45
Помогаю со студенческими работами здесь

Узнать, какая кнопка была нажата
Доброго времени суток! Тут возникла проблема и я зашел в ступор, буду благодарен за вашу помощь. Есть много кнопок, имена этих...

Как узнать, какая кнопка нажата?
Вот код: if (!e.which &amp;&amp; e.button) { if (e.button &amp; 1) e.which = 1 else if (e.button &amp; 4) e.which = 2 else if (e.button &amp;...

Как узнать какая кнопка была нажата?
такой код: HMTL &lt;form action='myasp.asp' method=post name='form1'&gt; &lt;input type=submit name='myname' value='1'&gt; &lt;input type=submit...

Узнать какая кнопка была нажата SDL2.0
Привет, как в этом примере узнать какая кнопка была нажата, я хочу сделать для каждой кнопки отдельное действия, но не могу понять, как...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru