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

Как научить свой компонент обрабатывать события? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android eclipsе (в эмуляторе нет моей программы) http://www.cyberforum.ru/android-dev/thread444422.html
Здравствуйте! Поставил эклипс по след схеме: 1)скачать классик с офф сайта 2)через прогу поставил адт плагин 3)скачвал сдк 4)указал в проге к сдк путь Заработал. Всё бы ничего, но при запуске...
Программирование Android Ошибка в эмуляторе Здравствуйте. Периодически возникает ошибка при запуски виртуального устройства в eclipse«Unfortunately Tect has stopped» (вложение). Подскажите пожалуйста как устранить эту ошибку? http://www.cyberforum.ru/android-dev/thread443959.html
Ошибка в Jackson сustom Serializers/Deserializers Программирование Android
Для того, что бы разобраться с сustom Serializers/Deserializers вынес в отдельный проект, выдает вот такую ошибку: ERROR/AndroidRuntime(288): java.lang.RuntimeException: Unable to start activity...
Программирование Android AndEngine и плавное перемещение спрайтов
Здравствуйте.Надеюсь я вам не надоел. Вот решил добить проблему плавного перемещения спрайтов (как сказал один растоман - в жизни все надо делать плавно). У движка есть Модификаторы (Modifiers) —...
Программирование Android OpenGL ES 1.0 и плавное пермещение http://www.cyberforum.ru/android-dev/thread442186.html
Здравствуйте. Я решил добить проблему плавного перемещения спрайтов, стандартным приемом (вложение Tectn5) не получается, решил попробовать с помощью OpenGL (вложение HelloOpenGLES53). Вот основной...
Программирование Android @Override problem Всем привет! Наблюдаю следующую ошибку! The method onPreExecuted(Void) of type TpActivity.XMLAsyncTask must override or implement a supertype method Подскажите в чем причина! package... подробнее

Показать сообщение отдельно
Pho3nix
0 / 0 / 0
Регистрация: 16.12.2010
Сообщений: 16

Как научить свой компонент обрабатывать события? - Программирование Android

12.02.2012, 21:15. Просмотров 1164. Ответов 0
Метки (Все метки)

Код компонента:

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
package my.component;
 
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.view.MotionEvent;
import android.view.View;
 
public class myButton extends View{
    private Bitmap bitmap = null;   
    public myButton(Context context){
        super(context);
        bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.slimeb11);
    }
    
    
 
    @Override 
          public boolean onTouchEvent(MotionEvent event) 
         { 
              
              //Float X=(Float)event.getX(); 
              //Float Y=(Float)event.getY(); 
            int Action=event.getAction(); 
                     
            switch(Action) 
             { 
                case MotionEvent.ACTION_DOWN: 
                    bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.slimeb);
                    invalidate();
                    break;
                    
                case MotionEvent.ACTION_MOVE: break; 
                
                case MotionEvent.ACTION_UP:
                bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.slimeb11);
                invalidate();
                break; 
                
             }
           
            return true;
             } 
 
    
    @Override
    protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec){
        setMeasuredDimension(130, 120);
        //setBackgroundColor(Color.BLUE);
    }
    
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        
        if (bitmap != null) canvas.drawBitmap(bitmap, 0, 0, null);
    }
 
}
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
По сути - это изображение, которое меняется при нажатии на него.. В основном классе создаю объект с типом myButton, и задаю onClickListener:
package my.component;
 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.Toast;
 
public class CustomComponentActivity extends Activity implements OnClickListener{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        
        LinearLayout ll = new LinearLayout(this);
        LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
        ll.setOrientation(LinearLayout.HORIZONTAL);
 
        
        myButton myBtn = new myButton(this);
        LayoutParams pb = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
        myBtn.setId(111);
        myBtn.setOnClickListener(this);
        
        ll.addView(myBtn, pb);
        setContentView(ll,lp);
    }
 
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()){
        case 111:
            Toast.makeText(this, "ololo", 1000).show();
            break;
        }
        
    }
}
Toast не срабатывает. Подскажите что нужно сделать? Статическим делать не хочу компонент - их будет несколько таких и на каждый нужно свою обработку onClick`a

Добавлено через 6 минут
Разобрался сам) Нужно использовать в основном классе не OnClickListener а OnTouchListener.. Соответственно обработчик будет OnTouch
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru