Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
iPashka1997
-2 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 117
#1

Кнопка со счётчиком нажатий

09.12.2016, 23:48. Просмотров 1027. Ответов 23
Метки нет (Все метки)

Добрый день смотрел в интернете но ни нашел примера. Что для этого нужно?
Или какие темы можно посмотреть?
Думал что натыкал к примеру 1000 раз и здание улучшилось. Наклоцал еще 3000 - еще лучше стало и т.д.
Спасибо за ответы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2016, 23:48
Ответы с готовыми решениями:

Обработка нажатий
Господа подскажите как определить что пользователь провел пальцем влево или в...

Обработчик нажатий
Всем доброго времени суток. Я новичок в программировании и буду очень...

Несколько нажатий
Подскажите пожалуйста как сделать так, что бы можно было нажимать на ОДНУ...

Обработка нажатий на виджет
Подскажите пожалуйста. Из уроков так и не понял. 1 Как сделать чтобы при...

Обработка нажатий на виджет
Почему не работает при нажатии на виджет? @Override public void...

23
fraley
110 / 110 / 43
Регистрация: 24.05.2015
Сообщений: 329
09.12.2016, 23:53 #2
WTF клоцалка?
0
iPashka1997
-2 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 117
09.12.2016, 23:59  [ТС] #3
ну типа клоцаешь по дисплею n-ное кол-во раз и что-то улучшается.
0
hemoa
-1 / 5 / 0
Регистрация: 22.11.2016
Сообщений: 68
10.12.2016, 13:47 #4
Вы об автокликере что ли?
0
iPashka1997
-2 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 117
10.12.2016, 14:01  [ТС] #5
не вы не поняли. Зачем автокликер. Кликать нужно в ручную. Например есть сундук картинка. нажал на кнопку 10-15 раз и картинка поменялась на открытый сундук к примеру.
0
hemoa
-1 / 5 / 0
Регистрация: 22.11.2016
Сообщений: 68
10.12.2016, 14:03 #6
iPashka1997, и этот сундук именно в вашей проге? тогда никакой рут не нужен
0
iPashka1997
-2 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 117
10.12.2016, 14:09  [ТС] #7
да в моей. Это просто нужно написать командами. Я просто не знаю как. В интернете подобного не нашел. Может в гугле забиваю не правильно.
0
Pablito
2707 / 2154 / 731
Регистрация: 12.05.2014
Сообщений: 7,521
Завершенные тесты: 1
10.12.2016, 14:22 #8
у любой вью есть метод performClick()
0
iPashka1997
-2 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 117
10.12.2016, 14:25  [ТС] #9
ну вот примерно так выглядеть будет:
0
Миниатюры
Кнопка со счётчиком нажатий  
hemoa
-1 / 5 / 0
Регистрация: 22.11.2016
Сообщений: 68
10.12.2016, 14:32 #10
iPashka1997, ну так в чем проблема? простенькая алгоритмическая задачка.
в классе Activity создаешь поле
Java
1
int clicksCount = 0;
а в клике вот такой код:
Java
1
2
3
4
5
if (clicksCount < 15) {
    clicksCount++;
} else {
    //то что должно произойти если кликнул 15 раз
}
вот и все. неужели это сложно?
0
iPashka1997
-2 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 117
10.12.2016, 14:33  [ТС] #11
только в идеале хотелось бы чтобы нужно было нажать на кнопку открыть к примеру раз 30 и кол-во нажатых раз писало.
И когда 30 раз клоцнул картинка поменялась на открытый сундучек.
0
hemoa
-1 / 5 / 0
Регистрация: 22.11.2016
Сообщений: 68
10.12.2016, 14:39 #12
iPashka1997, ну и что это, проблема? учитесь разбивать задачу на кусочки, без этого нет программирования.
вот для начала вам нужен такой код как я вам дал.
затем нужен код чтобы где-то писало число нажатых, ну скажем типа такого:
Java
1
Toast.makeText(this, String.valueOf(clicksCount), Toast.LENGTH_SHORT).show();
затем нужен код для смены картинки у ImageView.
у меня нету желания его писать т.к. по памяти не напишу, надо в доку лезть и в IDE пробовать прежде чем вам его дать.
задавайте отдельный вопрос по каждому кусочку, тем самым больше народу ответит
0
iPashka1997
-2 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 117
10.12.2016, 15:15  [ТС] #13
Запутался капец. Где тут ошибка. Обработчик кнопки создать не получается(.
А с заменой картинок тоже не знаю что делать. Старая по идее должна уйти а новая встать на ее место.
0
Миниатюры
Кнопка со счётчиком нажатий  
iPashka1997
-2 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 117
10.12.2016, 15:20  [ТС] #14
а с заменой картинок подойдет метод getDrawable() и присвоить ему второму компоненту.
Примерно так:
Java
1
2
3
4
5
ImageView ivSource = (ImageView) findViewById(R.id.sourceImageView); // 1-й компонент с какой-то картинкой
ImageView ivTarget = (ImageView) findViewById(R.id.targetImageView); // 2-й компонент без картинки
 
Drawable drawable = ivSource.getDrawable(); // получим картинку у первого компонента
ivTarget.setImageDrawable(drawable); // присвоим второму
Или я фигню пишу?
0
iPashka1997
-2 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 117
10.12.2016, 15:34  [ТС] #15
исправил некоторые ошибки, прога запускается но как что дописать не понимаю.
0
Миниатюры
Кнопка со счётчиком нажатий  
Pablito
2707 / 2154 / 731
Регистрация: 12.05.2014
Сообщений: 7,521
Завершенные тесты: 1
10.12.2016, 15:51 #16
не надоело скриншоты вместо текта сюда кидать?
мне иногда кажется, что это толстый тролль, потому что невозможно быть настолько эмм...несообразительным

уроки не заходят ему, код весь надо написать за него, желания подумать самостоятельно вообще не возникает
0
hemoa
-1 / 5 / 0
Регистрация: 22.11.2016
Сообщений: 68
10.12.2016, 16:18 #17
iPashka1997,
ImageView ivSource = (ImageView) findViewById(R.id.sourceImageView); // 1-й компонент с какой-то картинкой
ImageView ivTarget = (ImageView) findViewById(R.id.targetImageView); // 2-й компонент без картинки

Drawable drawable = ivSource.getDrawable(); // получим картинку у первого компонента
ivTarget.setImageDrawable(drawable); // присвоим второму
Ну да, в принципе рабочий костыль, но я не понимаю почему вообще столько проблем, пользуйтесь хоть Климовым и СтартАндроидом, а то каждый шаг надо спрашивать на форуме.

Добавлено через 37 секунд

Не по теме:

Паблито, как это уроки не заходят?

0
iPashka1997
-2 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 117
10.12.2016, 16:38  [ТС] #18
и последний вопрос вроде получилось все норм но у меня картинка на картинке изначально налаживаются до присвоения!
А потом все норм. Не знаю что в коде исправить нужно.
Java
1
2
3
4
5
6
7
8
9
10
        public void otkrut(View view){
            Toast.makeText(this, String.valueOf(clicksCount), Toast.LENGTH_SHORT).show();
            if (clicksCount < 30) {
                clicksCount++;
            } else {
                ImageView ivSource = (ImageView) findViewById(R.id.imageView); // 1-й компонент с какой-то картинкой
                ImageView ivTarget = (ImageView) findViewById(R.id.imageView5); // 2-й компонент без картинки
 
                Drawable drawable = ivSource.getDrawable(); // получим картинку у первого компонента
                ivTarget.setImageDrawable(drawable); // присвоим второму
0
Миниатюры
Кнопка со счётчиком нажатий  
iPashka1997
-2 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 117
11.12.2016, 18:31  [ТС] #19
И это эмулятор тупит, просто если быстро нажимать, то счетчик не успевает считать. Так можно наклоцать до открытия сундучка а он только до 15 в лучшем случае досчитает.

Добавлено через 38 минут
все получилось, использовал следующий код:
Java
1
2
3
ImageView img = (ImageView) findViewById(R.id.your_id);
img.setImageResource(R.drawable.your_picture);
img.invalidate();
Добавлено через 3 часа 46 минут
А как привязать к textview счетчик чтобы он считал количество нажатий. Так как нажатия быстрые чтобы успевал реагировать.

Добавлено через 18 часов 12 минут
А если в кликалке улучшений будет больше, например 10 картинок, то возможно код написать так:
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
package ipashka1997.ratusha;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
 
public class MainActivity extends AppCompatActivity{
    int clicksCount = 0;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void otkrut(View view) {
        if (clicksCount < 2) {
            clicksCount++;
        } else {
            ImageView img = (ImageView) findViewById(R.id.imageView);
            img.setImageResource(R.drawable.lvl2);
            img.invalidate();
        }
        if (clicksCount < 4) {
            clicksCount++;
        } else {
            ImageView img = (ImageView) findViewById(R.id.imageView);
            img.setImageResource(R.drawable.lvl3);
            img.invalidate();
        }
        if (clicksCount < 6) {
            clicksCount++;
        } else {
            ImageView img = (ImageView) findViewById(R.id.imageView);
            img.setImageResource(R.drawable.lvl4);
            img.invalidate();
        }
        if (clicksCount < 8) {
            clicksCount++;
        } else {
            ImageView img = (ImageView) findViewById(R.id.imageView);
            img.setImageResource(R.drawable.lvl5);
            img.invalidate();
        }
        if (clicksCount < 10) {
            clicksCount++;
        } else {
            ImageView img = (ImageView) findViewById(R.id.imageView);
            img.setImageResource(R.drawable.lvl6);
            img.invalidate();
        }
        if (clicksCount < 12) {
            clicksCount++;
        } else {
            ImageView img = (ImageView) findViewById(R.id.imageView);
            img.setImageResource(R.drawable.lvl7);
            img.invalidate();
        }
        if (clicksCount < 15) {
            clicksCount++;
        } else {
            ImageView img = (ImageView) findViewById(R.id.imageView);
            img.setImageResource(R.drawable.lvl8);
            img.invalidate();
        }
        if (clicksCount < 20) {
            clicksCount++;
        } else {
            ImageView img = (ImageView) findViewById(R.id.imageView);
            img.setImageResource(R.drawable.lvl9);
            img.invalidate();
        }
        if (clicksCount < 25) {
            clicksCount++;
        } else {
            ImageView img = (ImageView) findViewById(R.id.imageView);
            img.setImageResource(R.drawable.lvl10);
            img.invalidate();
 
        }
    }
}
Только там где-то ошибка есть, так как картинка не меняется. И мне кажется она в этой строчке:
Java
1
 ImageView img = (ImageView) findViewById(R.id.imageView);
- так как картинка должна сменятся.
Я думаю нужно как то имя картинке дать после первой замены чтобы у нее был id.

Добавлено через 3 часа 8 минут
просто забыл объявить метод onClick для кнопки.
Но картинки переключаются не после нужного кол-ва нажатий.
0
_Night_Scream_
78 / 76 / 10
Регистрация: 08.08.2013
Сообщений: 630
12.12.2016, 09:11 #20
Toast будет так себя вести и на реальных девайсах, использовать его для таких вещей не надо, иначе вы закроете свою игру, а сообщения еще будут появляться пока не выйдут все из очереди.
0
12.12.2016, 09:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2016, 09:11

Обработка нажатий в TabLayout
Друзья, привет, вопрос следующий, я разобрался с TabLayout, но только при...

Fragment обработка нажатий
Здравствуйте. Есть 9 Layout-ов. Каждый выступает в роли контейнера для...

Sliding Menu обработка нажатий
Кто нибудь использовал данную библиотеку? menu = new SlidingMenu(this);...


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

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

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