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

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

Войти
Регистрация
Восстановить пароль
 
 
iPashka1997
4 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 97
#1

Кнопка со счётчиком нажатий - Программирование Android

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

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

Обработка нажатий - Программирование Android
Господа подскажите как определить что пользователь провел пальцем влево или в право? Отслеживать в onTouch координаты? Если Х...

Несколько нажатий - Программирование Android
Подскажите пожалуйста как сделать так, что бы можно было нажимать на ОДНУ кнопку несколько раз и она например меняла бы звук нажал первый...

Обработчик нажатий - Программирование Android
Всем доброго времени суток. Я новичок в программировании и буду очень признателен в помощи. Вопрос такой: мне нужно в обработчике по...

Обработка нажатий на виджет - Программирование Android
Почему не работает при нажатии на виджет? @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int...

Fragment обработка нажатий - Программирование Android
Здравствуйте. Есть 9 Layout-ов. Каждый выступает в роли контейнера для фрагментов. Вопрос в следующем. Не могу сделать обработку нажатий на...

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

23
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 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
4 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 97
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
4 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 97
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_
76 / 75 / 8
Регистрация: 08.08.2013
Сообщений: 612
12.12.2016, 09:11 #20
Toast будет так себя вести и на реальных девайсах, использовать его для таких вещей не надо, иначе вы закроете свою игру, а сообщения еще будут появляться пока не выйдут все из очереди.
0
iPashka1997
4 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 97
12.12.2016, 16:29  [ТС] #21
_Night_Scream_, а как тогда лучше реализовать?
0
_Night_Scream_
76 / 75 / 8
Регистрация: 08.08.2013
Сообщений: 612
12.12.2016, 16:53 #22
iPashka1997, ну например где-то на activity стоит textView, в него и пихайте, он то сразу быстро всё отобразит.
0
demixdn
228 / 175 / 54
Регистрация: 31.10.2016
Сообщений: 401
12.12.2016, 16:54 #23
iPashka1997, Ваш код с кучей if неверен. Замените его на switch - case и будет вам счастье.
Дебаггером посмотрите, вы же на каждом if проверяете, не меньше ли оно значения, а если меньше, то делаете ++.
И у вас каждый раз оно неконтролируемо увеличивается.
И img вынесите в глобальные переменные, вы же каждый раз ее ищите на вьюшке. А это затратная операция.
0
iPashka1997
4 / 0 / 0
Регистрация: 28.09.2015
Сообщений: 97
15.12.2016, 14:18  [ТС] #24
Сделал через switch - case, но решил добавить еще туда progressBar чтобы он показывал процесс открытия или улучшения. Только я не знаю как к этому progressBar обратится. Вот мой код:
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
package ipashka1997.statusbar;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
 
import static ipashka1997.statusbar.R.id.progressBar;
 
 
public class MainActivity extends AppCompatActivity {
    int a=0;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    public void otkrut(View view){
        switch (a){
            case 5:
                setSecondaryProgress(25);
                break;
            case 10:
                setSecondaryProgress(50);
                break;
            case 15:
                setSecondaryProgress(75);
                break;
            case 20:
                ImageView img = (ImageView) findViewById(R.id.imageView);
                img.setImageResource(R.drawable.sunduk_otkrutuy);
                img.invalidate();
                setSecondaryProgress(100);
                break;
                default:
                break;
        }
        }
    }
Спасибо за помощь!
0
15.12.2016, 14:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2016, 14:18
Привет! Вот еще темы с ответами:

Обработка нажатий клавиш программной клавиатуры - Программирование Android
Не знаю, была ли эта тема. Но столкнулся с такой проблемой: допустим есть макет с EditText и ListView. Они отображаются сверху вниз в...

Обработка нажатий внутри класса адаптера - Программирование Android
Можно ли обрабатывать нажатия в классе адаптера expandablelistview? Если нет, то что будет если я поставлю там обработчики?

Изменять изображение в зависимости от количества нажатий - Программирование Android
Всем привет , помогите нубу) Как сделать чтобы , кликая на кнопку, допустим 100 раз появилось изображение ,200 раз другое public class...

Обработка нажатий на сам фрагмент а не на отдельную кнопку - Программирование Android
Как повесить обработку нажатий на весь фрагмент а не на отдельное View внутри фрагмента? Добавлено через 2 минуты Есть 2 фрагмента...


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

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

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