Форум программистов, компьютерный форум CyberForum.ru

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

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

Не получается вызвать метод onDraw(); - Программирование Android

03.04.2015, 21:32. Просмотров 675. Ответов 1
Метки нет (Все метки)

Здравствуйте!
Я новичок в разработке приложений под android и сегодня безрезультатно провел день, т.к. не знаю решения моей проблемы. Прошу помочь.
Итак, проблема заключается в следующем: есть два активити. В одном я получаю координаты нажатия на экран. И хочу, чтобы в месте нажатия рисовалась линия с помощью канвы, используя метод onDraw(), который, в свою очередь, находится в другом классе. Координаты представлены в виде переменных mX и mY и осуществляется проверка условия(200 и 250 взяты от, прошу прощения, балды):

Java
1
2
3
if (mX > 200 && mY > 250) {
   GameDraw.DrawView.onDraw();
   }
Проверка условия происходит в классе GameAct.java, а GameDraw - это тот класс, который содержит метод onDraw() имеет следующий вид:

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
package...
 
import...
 
public class GameDraw extends ActionBarActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new DrawView(this));
    }
 
        class DrawView extends View {
 
        public DrawView(Context context) {
            super(context);
        }
 
        @Override
        protected void onDraw(Canvas canvas) {
            canvas.drawColor(Color.RED);
        }
    }
}
Я не стал заморачиватся рисованием линии, а просто решил закрасить все красным цветом.
Так сделать не получается, выводит сообщение: "Non-static method 'onDraw(android.graphics.Canvas)' cannot be referenced from a static context"
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2015, 21:32     Не получается вызвать метод onDraw();
Посмотрите здесь:
Android Не получается вызвать другую активити
Вызвать метод класса Android
OnClickListener не может вызвать метод с MainActivity Android
Неуправляемый onDraw в отдельном View компоненте Android
Android Как вызвать метод только при последующих запусках приложения?
Android Клиент bluetooth. как в кнопке правильно вызвать метод для подключения?
Как толкнуть одной фигурой другую в методе onDraw Android
Как из одного потока вызвать метод таким образом, чтобы он выполнялся в другом потоке Android
Progress Button, как вызвать метод, а после закончить Progress? Android
Не получается вызвать метод Java SE
JavaFX Не получается вызвать абстрактный метод =(
Почему не получается вызвать метод rowCount() в PDO? PHP ООП

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2417 / 1862 / 583
Регистрация: 12.05.2014
Сообщений: 6,601
Завершенные тесты: 1
03.04.2015, 22:10     Не получается вызвать метод onDraw(); #2
Класс DrawView объявлен внутри другого класса. Что-бы исправить ошибку есть два пути:
- объявить его за пределами класса, не внутри GameDraw
- сделать его статическим, то есть не выносить за пределы GameDraw, а объявить так
Java
1
static class DrawView extends View
Это если не вникать в код.
Yandex
Объявления
03.04.2015, 22:10     Не получается вызвать метод onDraw();
Ответ Создать тему
Опции темы

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