Вопрос

У меня есть 3-4 мероприятия в приложении, и все они имеют некоторые слушатели событий, которые хорошо работают. Однако только на одной деятельности я просто не могу получить обработку событий на работу. Я попробовал решение из этой темы:http://www.anddev.org/view-layout-resource-problems-f27/ontouch-not-called-t16578.html.Это не работает для меня. Я пытался вручную установить OnClickListeners для ImageViews из Java Code, Android: OnClick из XML.

Похоже, что некоторые другие компоненты обрабатывают все события, или моя деятельность не имеет некоторого разрешения на обработку событий. Должен ли я поставить что-то в AndroidMainfest.xml для моей деятельности, которая обеспечивает обработку событий?

Надеюсь, что у кого-то есть идея, что я должен попробовать, вот код:

Деятельность:

package com.renegade.begining;

import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;

import android.view.MotionEvent;
import android.view.View;
import android.widget.ImageView;


public class NotesOnStaff extends Activity{
   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);


        setContentView(R.layout.notes_on_staff);


   /*     NoteView2 note=(NoteView2)findViewById(R.id.note_red);


        Bitmap bm=BitmapFactory.decodeResource(getResources(), R.drawable.note_red);
        note.setImage(bm);
     */   



    }


    public void onClickEventBtn1(View v) {
      // TODO Auto-generated method stub
       ImageView keyboard_letter=(ImageView)findViewById(R.id.keyboard_letters);
       keyboard_letter.setVisibility(View.INVISIBLE);
   }

    public void onClickEventBtn2(View v) {
      // TODO Auto-generated method stub
       ImageView keyboard_letter=(ImageView)findViewById(R.id.keyboard_letters);
       keyboard_letter.setVisibility(View.VISIBLE);
   }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
       switch (event.getAction()) {
      case MotionEvent.ACTION_DOWN:
         ImageView keyboard_letter=(ImageView)findViewById(R.id.keyboard_letters);
           keyboard_letter.setVisibility(View.VISIBLE);
         return true;
      case MotionEvent.ACTION_UP:
        return false; // something else
                default:
                        return false;// all others
      }
    }


}

Макет:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:id="@+id/notes_on_staff_layout"
  android:background="@drawable/background_ver"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">


            <ImageView
              android:id="@+id/notes_keyboard"
           android:src="@drawable/keyboard"
           android:layout_height="wrap_content"
           android:layout_width="wrap_content"
           android:layout_alignParentBottom="true"
             android:layout_centerHorizontal="true"
           android:layout_marginBottom="20dip"   

         android:clickable="true" android:focusable="true"/>

      <ImageView
           android:id="@+id/btn_hide"
           android:src="@drawable/btnhide"
           android:layout_alignParentLeft="true"
           android:layout_marginTop="40dip"
           android:layout_marginLeft="10dip"
           android:layout_height="wrap_content"
           android:layout_width="wrap_content"
            android:onClick="onClickEventBtn1"
         android:clickable="true" android:focusable="true"/>

      <ImageView 
         android:id="@+id/btn_show"
          android:layout_alignBottom="@id/btn_hide"
          android:layout_toRightOf="@id/btn_hide"
         android:src="@drawable/btnshow" 
         android:layout_height="wrap_content" 
         android:layout_width="wrap_content"
         android:onClick="onClickEventBtn2"
          android:clickable="true" android:focusable="true"/>   



      <ImageView

           android:id="@+id/staff"
           android:src="@drawable/staff"
           android:layout_below="@id/btn_hide"
           android:layout_height="wrap_content"
           android:layout_width="wrap_content"
           android:layout_centerHorizontal="true"
           android:layout_marginTop="0dip"
           android:layout_above="@id/notes_keyboard"


         />   


      <com.renegade.begining.NoteView2 
        android:id="@+id/note_red"
      android:layout_width="wrap_content"
       android:layout_height="wrap_content"


           />      


      <ImageView 
         android:id="@+id/keyboard_letters"
          android:layout_alignLeft="@+id/notes_keyboard"
          android:layout_alignBottom="@+id/notes_keyboard"
          android:layout_marginBottom="10dip"
          android:visibility="invisible"
         android:src="@drawable/keyboard_letters" 
         android:layout_height="wrap_content" 
         android:layout_width="wrap_content"
          android:clickable="true" android:focusable="true"/>   


</RelativeLayout>
Это было полезно?

Решение

Ваш EventListener поглощает все события. Попробуйте вернуть его false вместо правдой, поэтому субвезонные представления получают возможность реагировать, как я думаю, onClick Чтобы правильно стрелять в детское мнение, необходимо зарегистрировать непрерывное снижение, а затем вверх (просто вверх недостаточно; подумайте о том, чтобы скользить пальцем с кнопкой на другой, выпуская; ни пожара, как это указание, что пользователь хочет отменить.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top