Вниз  Android-программирование (1-ые посты)
- 10.05.2013 / 08:47
boNNdaR
  Пользователь

boNNdaR 
Сейчас: Offline
Сори,затупил.
- 10.05.2013 / 08:56
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Naik, о, да, помню это событие)
__________________
 let live
- 10.05.2013 / 12:41
boNNdaR
  Пользователь

boNNdaR 
Сейчас: Offline
У меня вот такой вопрос.Как вызывать метод для рисования onDraw с других класов.Дело в том что он имеет параметры onDraw(Canvas c),и я незнаю что писать там при вызове.
- 10.05.2013 / 12:45
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
boNNdaR, invalidate() / postInvalidate();
А вообще поясни, что значит с других классов. Вот у тебя отображается какой-то экран из каких классов ты хочешь его перерисовать?
__________________
 let live
- 10.05.2013 / 12:57
boNNdaR
  Пользователь

boNNdaR 
Сейчас: Offline
Есть два класа-Main и Draw.Main главный,и в качестве setContentView стоит Draw.Который extends View,и имеет метод onDraw.Клас Main implements SensorEventListener.В нем я работаю с акселерометром,и там имеется метод onSensorChanged(который вызывается когда двигать апарат).Так вот,я хочу обновлять екран(вызывать onDraw с другими параметрами),каждый раз когда апарат двигается.
- 10.05.2013 / 13:00
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
boNNdaR, юзай метод invalidate() или postInvalidate() если с другого потока обновляешь.
__________________
 let live

Изменено aNNiMON (10.05 / 13:00) (всего 1 раз)
- 10.05.2013 / 13:34
boNNdaR
  Пользователь

boNNdaR 
Сейчас: Offline
Ещё один вопрос с области ООП.Есть два класса Main и Fon.В Main есть переменная int x.Её обявления делаю в поле класса,а инициализация проходит в методе Method.Как мне получить эту переменную в классе Fon?
- 10.05.2013 / 13:45
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
boNNdaR, 1. Передать ссылку на класс Main классу Fon и там уже обратиться к полю.
2. Сделать переменную int x статической и работать напрямую с ней Main.getX();
3. Если ты вызываешь методы класса Fon, то можешь передать переменную в этот класс.
__________________
 let live

Изменено aNNiMON (10.05 / 13:46) (всего 2 раза)
- 10.05.2013 / 13:48
SeTSeR
  Пользователь

SeTSeR 
Сейчас: Offline
boNNdaR, если переменная статистическая, то пишешь Main.x. Если же нет, то создаёшь объект класса Main и получаешь. Если переменная объявлена, как private или она обновляется в каком-то методе, то создаёшь в классе Main метод getX() и вызываешь его в классе Fon. В твоём случае будет так:
  1. public class Main{
  2.  
  3.  private int x;
  4.  //бла-бла-бла
  5.  
  6.  public void Method(){
  7.   x = 15;
  8.  }
  9.  
  10.  public int getX(){
  11.   Method();
  12.   Method();
  13.   return x;
  14.  }
  15. }
  16. public class Fon{
  17.  public Fon(){
  18.   Main main = new Main();
  19.   int h = getX();
  20.  }
  21. }

- 10.05.2013 / 14:03
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
SeTSeR, нет, нельзя заново создавать объект класса Main!!
  1. public class Main {
  2.  
  3.     private int x;
  4.  
  5.     private void Method() {
  6.         x = 15;
  7.     }
  8.  
  9.     public int getX() {
  10.         return x;
  11.     }
  12.  
  13.     private void initFon() {
  14.         Fon fon = new Fon(this);
  15.         setContentView(fon);
  16.     }
  17. }
  18.  
  19. public class Fon {
  20.  
  21.     public Fon(Main main) {
  22.         int x = main.getX();
  23.     }
  24. }

__________________
 let live
Наверх  Всего сообщений: 4453
Фильтровать сообщения
Поиск по теме
Файлы топика (184)