Кнопка не работает на виде поверхности
Я изучал некоторый исходный код по этой ссылке 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>