Прослушиватель событий ImageButton не будет работать внутри ScrollView -> HorizontalScrollView

#android

#Android

Вопрос:

ImageButton прослушиватель событий не работает.

Вот мой код (обновленный):

XML:

 <ScrollView ...>
    <LinearLayout
       android:orientation="vertical"
       ...
       >
       <HorizontalScrollView
          ...
          >
          <LinearLayout 
         android:orientation="horizontal"
     ...
         >
             <ImageButton
                 android:id="@ id/img_btn1"
     />
          </LinearLayout>
        </HorizontalScrollView>
    </LinearLayout>
</ScrollView>
  

Код Java:

 public class Main extends Activity{
    ImageButton imgBtn1;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        imgBtn1 = (ImageButton) findViewById(R.id.img_btn1);
        imgBtn1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.w("onClick", "ImageButton Clicked");
            }
        });
    }
}
  

Этот код не работает. Спасибо за любую помощь.

Комментарии:

1. опубликуйте весь свой код действия.

2. другие коды — это просто объявления и инициализации.

3. в соответствии с предложением пользователя Uttam инициализировать ImageButton и получить представление, затем объявить onClick(), поэтому попробуйте его код.

Ответ №1:

Попробуйте это:——

   ImageButton imgBtn1 = (ImageButton)findViewById(R.id.img_btn1);        
  imgButn1.setOnClickListener( new View.OnClickListener(){
    @Override
    public void onClick(View v) {
        Toast.makeText(getApplicationContext(), " ", Toast.LENGTH_SHORT).show();
    }
   });
  

Комментарии:

1. Спасибо за ответ Uttam. Ребята, это все то же самое с моим кодом выше. он не работает… Я уже инициализировал свою кнопку, но я не показывал ее выше. этот код не работает. пожалуйста, помогите мне…

Ответ №2:

На моей стороне это работает нормально:

setContentView(R.layout.vhscroll);

ImageButton ImageButton = (ImageButton)findViewById(R.id.imagebutton1);

     imageButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(VHScrollViewActivity.this, "You clicked image button", Toast.LENGTH_LONG).show();
        }
    });
  

а xml-код — это:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ScrollView  android:id="@ id/scrollview" android:layout_width="fill_parent" android:layout_height="wrap_content">
    <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical">
            <HorizontalScrollView android:layout_width="fill_parent" android:layout_height="wrap_content">
<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content">
                    <ImageButton android:id="@ id/imagebutton1" android:layout_width="100dip" android:layout_height="100dip" android:src="@drawable/sample_0" android:scaleType="fitXY"/>
</.......>
  

Комментарии:

1. ребята, на самом деле мой код работает. сори, это ошибка опечатки … спасибо за весь ответ.