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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.64
Schasliv4ik
1 / 1 / 0
Регистрация: 02.06.2014
Сообщений: 32
#1

Не работает OnTouchListener - Android

17.06.2014, 14:17. Просмотров 1428. Ответов 6
Метки нет (Все метки)

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Button start = (Button) findViewById(R.id.Start);
        start.setOnTouchListener(new OnTouchListener() {
 
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    Intent intent = new Intent(MainActivity.this, Game.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(intent);
                }
                return false;
            }
        });
Не работает, т.к. находится в методе onCreate сразу же при запуске на телефоне выдает ошибку.
В коде никаких проблем не показывает.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
glnix
14 / 14 / 5
Регистрация: 08.04.2013
Сообщений: 75
17.06.2014, 14:25     Не работает OnTouchListener #2
LogCat что пишет?
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
17.06.2014, 14:25     Не работает OnTouchListener #3
Цитата Сообщение от Schasliv4ik Посмотреть сообщение
Не работает, т.к. находится в методе onCreate сразу же при запуске на телефоне выдает ошибку
не не не. вряд ли) покажите ошибку
Schasliv4ik
1 / 1 / 0
Регистрация: 02.06.2014
Сообщений: 32
17.06.2014, 16:48  [ТС]     Не работает OnTouchListener #4
YuraAAA, glnix,
Код
06-17 15:47:16.599: V/WindowManager(2344): rotationForOrientationLw(orient=1, last=0); user=0 USER_ROTATION_LOCKED sensorRotation=-1 isCoverOpen=true mLidState=-1 mDockMode=0 mHdmiPlugged=false mAccelerometerDefault=false
06-17 15:47:16.609: V/WindowManager(2344): Application requested orientation 1, got rotation 0 which has compatible metrics
06-17 15:47:16.609: D/WindowManager(2344): computeScreenConfigurationLocked() set config.orientation=1 dw=720 dh=1280 Callers=com.android.server.wm.WindowManagerService.updateOrientationFromAppTokensLocked:5171 com.android.server.wm.WindowManagerService.updateOrientationFromAppTokens:5142 com.android.server.am.ActivityManagerService.setRequestedOrientation:3481 
06-17 15:47:16.609: D/AndroidRuntime(3755): Shutting down VM
06-17 15:47:16.609: W/dalvikvm(3755): threadid=1: thread exiting with uncaught exception (group=0x41cb8700)
06-17 15:47:16.609: D/PowerManagerService(2344): setKeyboardVisibility: false
06-17 15:47:16.614: E/AndroidRuntime(3755): FATAL EXCEPTION: main
06-17 15:47:16.614: E/AndroidRuntime(3755): java.lang.RuntimeException: Unable to start activity ComponentInfo{ua.NewAlternativesIcn.lumberjack/ua.NewAlternativesIcn.lumberjack.MainActivity}: java.lang.ClassCastException: android.widget.ImageButton cannot be cast to android.widget.Button
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at android.app.ActivityThread.access$700(ActivityThread.java:159)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at android.os.Handler.dispatchMessage(Handler.java:99)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at android.os.Looper.loop(Looper.java:176)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at android.app.ActivityThread.main(ActivityThread.java:5419)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at java.lang.reflect.Method.invokeNative(Native Method)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at java.lang.reflect.Method.invoke(Method.java:525)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at dalvik.system.NativeStart.main(Native Method)
06-17 15:47:16.614: E/AndroidRuntime(3755): Caused by: java.lang.ClassCastException: android.widget.ImageButton cannot be cast to android.widget.Button
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at ua.NewAlternativesIcn.lumberjack.MainActivity.onCreate(MainActivity.java:29)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at android.app.Activity.performCreate(Activity.java:5372)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
06-17 15:47:16.614: E/AndroidRuntime(3755): 	... 11 more
06-17 15:47:16.619: I/ActivityManager(2344): Notify an ApplicationCrash
06-17 15:47:16.929: D/dalvikvm(2344): GC_FOR_ALLOC freed 2230K, 24% free 43698K/57140K, paused 210ms, total 210ms
06-17 15:47:16.954: I/dumpstate(3770): begin
06-17 15:47:16.954: I/SurfaceFlinger(1932): id=15099 Removed Mauncher (1/5)
06-17 15:47:16.954: I/SurfaceFlinger(1932): id=15099 Removed Mauncher (-2/5)
06-17 15:47:17.244: E/android.os.Debug(2344): !@Dumpstate > sdumpstate -k -t -z -d -o /data/log/dumpstate_app_error
06-17 15:47:18.234: D/SSRMv2:CustomFrequencyManagerService(2344): FrequencyrequestList.getNextMaxCPUCoreRequest, index: 1
06-17 15:47:18.469: D/SSRMv2:Monitor(2344): SIOP:: AP = 300 (read only)
06-17 15:47:20.804: D/STATUSBAR-NetworkController(2603): onSignalStrengthsChanged signalStrength=SignalStrength: 10 -1 -1 -1 -1 -1 -1 99 -140 -20 -200 -1 2147483647 gsm|lte 0x3 level=3
06-17 15:47:20.804: D/STATUSBAR-NetworkController(2603): Nothing, mRoamingIconId = 0
06-17 15:47:20.999: D/SSRMv2:Monitor(2344): SIOP:: AP = 300, Prev AP = 300, Duration = 10029
06-17 15:47:21.529: V/AlarmManager(2344): waitForAlarm result :4
06-17 15:47:21.634: V/WindowManager(2344): Window{43144508 u0 Keyguard}mOrientationRequetedFromKeyguard=false
06-17 15:47:21.654: V/WindowManager(2344): rotationForOrientationLw(orient=-1, last=0); user=0 USER_ROTATION_LOCKED sensorRotation=-1 isCoverOpen=true mLidState=-1 mDockMode=0 mHdmiPlugged=false mAccelerometerDefault=false
06-17 15:47:21.669: V/WindowManager(2344): Application requested orientation -1, got rotation 0 which has compatible metrics
06-17 15:47:23.499: D/SSRMv2:Monitor(2344): SIOP:: AP = 300 (read only)
06-17 15:47:25.924: I/dumpstate(3770): done
06-17 15:47:25.974: D/STATUSBAR-StatusBarManagerService(2344): manageDisableList what=0x0 pkg=WindowManager.LayoutParams
06-17 15:47:25.974: V/WindowManager(2344): Window{43144508 u0 Keyguard}mOrientationRequetedFromKeyguard=false
06-17 15:47:25.989: I/SurfaceFlinger(1932): id=15104 createSurf (720x1280),1 flag=4, Mauncher
06-17 15:47:25.999: D/SSRMv2:Monitor(2344): SIOP:: AP = 300 (read only)
06-17 15:47:26.019: V/WindowManager(2344): rotationForOrientationLw(orient=5, last=0); user=0 USER_ROTATION_LOCKED sensorRotation=-1 isCoverOpen=true mLidState=-1 mDockMode=0 mHdmiPlugged=false mAccelerometerDefault=false
06-17 15:47:26.029: V/WindowManager(2344): Application requested orientation 5, got rotation 0 which has compatible metrics
06-17 15:47:26.039: D/WindowManager(2344): computeScreenConfigurationLocked() set config.orientation=1 dw=720 dh=1280 Callers=com.android.server.wm.WindowManagerService.updateOrientationFromAppTokensLocked:5171 com.android.server.wm.WindowManagerService.updateOrientationFromAppTokens:5142 com.android.server.am.ActivityStack.resumeTopActivityLocked:2776 
06-17 15:47:26.039: D/PowerManagerService(2344): setKeyboardVisibility: false
06-17 15:47:26.054: W/ActivityManager(2344): mDVFSHelper.release()
06-17 15:47:26.099: D/CrashAnrDetector(2344): processName: ua.NewAlternativesIcn.lumberjack
06-17 15:47:26.099: D/CrashAnrDetector(2344): broadcastEvent : ua.NewAlternativesIcn.lumberjack data_app_crash
06-17 15:47:26.134: I/SurfaceFlinger(1932): id=15105 createSurf (1x1),1 flag=4, mumberjack
06-17 15:47:26.159: D/Launcher(15648): ACCESSIBILITY-talkback: false
06-17 15:47:26.159: D/Launcher.HomeFragment(15648): onResume
06-17 15:47:26.164: V/WindowManager(2344): Window{43144508 u0 Keyguard}mOrientationRequetedFromKeyguard=false
06-17 15:47:26.169: D/MenuAppsGridFragment(15648): onResume
06-17 15:47:26.174: D/CellLayoutChildren(15648): setCellDimensions. width: 144, height: 200, gapX: 0, gapY: 0
06-17 15:47:26.199: W/ActivityManager(2344): Permission denied: checkComponentPermission() owningUid=10031
06-17 15:47:26.204: W/ActivityManager(2344): Permission denied: checkComponentPermission() owningUid=10032
06-17 15:47:26.249: D/BatteryService(2344): update start
06-17 15:47:26.249: D/BatteryService(2344): level:59, scale:100, status:2, health:2, present:true, voltage: 3935, temperature: 275, technology: Li-ion, AC powered:false, USB powered:true, Wireless powered:false, icon:17303550, invalid charger:0, online:4, charge type:1, current avg:460
06-17 15:47:26.249: D/BatteryService(2344): Sending ACTION_BATTERY_CHANGED.
06-17 15:47:26.254: D/Mms/UIEventReceiver(3440): ui event
06-17 15:47:26.264: D/LockPatternUtils(2344): isPcwEnable = null
06-17 15:47:26.264: D/STATUSBAR-BatteryController(2603): onReceive() - ACTION_BATTERY_CHANGED
06-17 15:47:26.264: D/STATUSBAR-BatteryController(2603): onReceive() - BATTERY_STATUS_CHARGING:
06-17 15:47:26.264: D/STATUSBAR-PhoneStatusBar(2603):  mBrightnessEnablebySettings = true mBrightnessEnablebyBattery = true mBrightnessEnablebyDisableFlag = true
06-17 15:47:26.269: D/STATUSBAR-IconMerger(2603): checkOverflow(480), More:false, Req:false Child:1
06-17 15:47:28.504: D/SSRMv2:Monitor(2344): SIOP:: AP = 300 (read only)
это оно ?
646kapeh064
59 / 58 / 15
Регистрация: 09.12.2013
Сообщений: 208
18.06.2014, 01:51     Не работает OnTouchListener #5
Цитата Сообщение от Schasliv4ik Посмотреть сообщение
06-17 15:47:16.614: E/AndroidRuntime(3755): Caused by: java.lang.ClassCastException: android.widget.ImageButton cannot be cast to android.widget.Button
Попробуй в коде заменить:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
ImageButton start = (ImageButton) findViewById(R.id.Start); // Button на ImageButton
        start.setOnTouchListener(new OnTouchListener() {
 
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                // TODO Auto-generated method stub
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    Intent intent = new Intent(MainActivity.this, Game.class);
                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(intent);
                }
                return false;
            }
        });
Не знаю, получится ли. Но судя по ошибке надо сделать так : )
YuraAAA
1564 / 1306 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
18.06.2014, 10:59     Не работает OnTouchListener #6
Schasliv4ik, а если этот компонент используется только для тача, то cast вообще не нужен, так как setOnTouchListener это метод суперкласса (View).

Java
1
2
findViewById(R.id.Start).setOnTouchListner(new OnTouchListener() {
....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2014, 19:51     Не работает OnTouchListener
Еще ссылки по теме:

Android OnTouchListener и толстый дрожащий палец :)

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

Или воспользуйтесь поиском по форуму:
Schasliv4ik
1 / 1 / 0
Регистрация: 02.06.2014
Сообщений: 32
20.06.2014, 19:51  [ТС]     Не работает OnTouchListener #7
646kapeh064, YuraAAA, спасибо, помогло, но если разница между нажатием и отпусканием менше чем 0.5 сек, примерно, то ошибка !
Yandex
Объявления
20.06.2014, 19:51     Не работает OnTouchListener
Ответ Создать тему
Опции темы

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