Кнопка не работает на виде поверхности

Я изучал некоторый исходный код по этой ссылке http://android-er.blogspot.com/2010/12/add-overlay-on-camera-preview.html

Что мне делать здесь, если я хочу добавить еще одну кнопку, я добавил кнопку в XML, но они не работают, их исходный код:

LinearLayout layoutbg = (LinearLayout) findViewById(R.id.background);
    layoutbg.setOnClickListener(new LinearLayout.OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {

            case (R.id.previous_btn):
            //some source   
showImage();
                break;

            case (R.id.next_btn):
    //some source           showImage();
                break;

            }

        }

        private void showImage() {
            // TODO Auto-generated method stub
    Toast.makeText(AndroidCamera.this, " User don't  ", Toast.LENGTH_SHORT);
        }

    });
    }

3 ответа

Решение

Сделать вашу деятельность реализовать View.OnClickListener

После этого в вашем onCreate() метод сделать:

Button btn1= findViewById(R.id.previous_btn);
Button btn2= findViewById(R.id.next_btn);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);

В методе OnClick(), который необходимо переопределить после реализации View.OnClickListener сделайте следующее:

@Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {

            case (R.id.previous_btn):
            //some source   
showImage();
                break;

            case (R.id.next_btn):
    //some source           showImage();
                break;

            }

        }

Вы должны добавить directoy слушателя к кнопкам, а не к LinearLayout... и используя View.OnClickListener

Просто перейдите ко второй части учебника, который вы связали, "следующий: - Реализация функции takePicture камеры Android", здесь есть код для добавления слушателя к кнопке.

Проблема может быть в вашем XML. Android имеет тенденцию рисовать представления, которые находятся внизу вашего XML-документа в последнюю очередь. Это означает, что если ваши кнопки располагаются выше в документе, чем поверхность над ними, щелчки пользователя будут ударять по вашему SurfaceView, а не к вашим кнопкам.

Например, ваша кнопка не будет кликабельной в этом случае:

<RelativeLayout
  ... >
    <Button ... />
    <SurfaceView
      android:layout_width="match_parent"
      android:layout_height="match_parent" />
</RelativeLayout>

Но будет в этом случае:

<RelativeLayout
  ... >
    <SurfaceView
      android:layout_width="match_parent"
      android:layout_height="match_parent" />
    <Button ... />
</RelativeLayout>
Другие вопросы по тегам