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

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

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

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

03.04.2015, 21:32. Просмотров 790. Ответов 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"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2015, 21:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не получается вызвать метод onDraw(); (Программирование Android):

Не получается вызвать другую активити - Программирование Android
пробую так: Intent intent2 = new Intent(this, IntroActivity.class); startActivity(intent2); и безрезультатно...

Вызвать метод класса - Программирование Android
получил ссылку на класс по его имени Class <?> cls = null; try { cls = Class.forName(classname); } catch...

OnClickListener не может вызвать метод с MainActivity - Программирование Android
В MainActivity в onClickListener я могу вызвать метод selectCardFromList: public class MainActivity extends AppCompatActivity { ...

Неуправляемый onDraw в отдельном View компоненте - Программирование Android
Здравствуйте, у меня такая проблема -> не контролируемый onDraw (я убрал invalidate со всех функций), везде читал об этом, уже потерял все...

Как вызвать метод только при последующих запусках приложения? - Программирование Android
Доброго времени суток))) В приложении реализую систему сохранения. Нужно, чтобы при первом запуске появлялись "дефолтные" значения, а при...

Клиент bluetooth. как в кнопке правильно вызвать метод для подключения? - Программирование Android
нашел в интернете готовый класс private class ConnectThread extends Thread { private final BluetoothSocket mmSocket; ...

1
Pablito
2525 / 2004 / 624
Регистрация: 12.05.2014
Сообщений: 7,030
Завершенные тесты: 1
03.04.2015, 22:10 #2
Класс DrawView объявлен внутри другого класса. Что-бы исправить ошибку есть два пути:
- объявить его за пределами класса, не внутри GameDraw
- сделать его статическим, то есть не выносить за пределы GameDraw, а объявить так
Java
1
static class DrawView extends View
Это если не вникать в код.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.04.2015, 22:10
Привет! Вот еще темы с ответами:

Как толкнуть одной фигурой другую в методе onDraw - Программирование Android
Здравствуйте.Я на этом форуме новенький.Это мое первое сообщение,так что если формат формулировки не совсем правильный,попрошу меня...

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

Progress Button, как вызвать метод, а после закончить Progress? - Программирование Android
Есть кнопка с прогрессом, по ее клику вызывается это: private void sendProgress (final LinearProgressButton button){ ...

Как вызвать метод в активити классе из обычного не активити класса? - Программирование Android
Есть активити в котором вводятся логин и пароль. При нажатии кнопки "войти" в отдельном классе "сокетсервер"(+в отдельном потоке)...


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

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

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