deka
Dauergast
- 351
Hallo, ich habe in meiner App den FragmentManager um mir 6 Fragmente zu erzeugen. Jedes dieser 6 Fragmente erbt von ListFragment. In der onListItemClick prüfe ich welches Element der User anklickt und spiele das entsprechende Video ab, welches ich in der App halte.
Nun zum Problem: Wenn das Video startet und der Benutzer auf den Zurückbutton klickt, so gelangt er in die vorletzte Activity und nicht in die Activity die meine 6 Fragmente "hält". Wenn er jedoch während des Videos auf den Bildschirm tippt und die Videosteuerung erscheint (MediaController) und er dann auf den Backbutton klickt, so gelangt er wieder zurück zur Activity mit den Fragmenten. Das ist das gewünschte Verhalten. Das erzwinge ich quasi selber durch meinen Code, was ich auch nicht so schön finde.
Mein Ziel ist es, auch wenn die Steuerelemente des MediaController nicht angezeigt werden, dass beim Drücken des Backbuttons der Benutzer wieder zurück in die beschriebene Activity gelangt.
Hat jemand eine Idee wie das gehen soll?
Nun zum Problem: Wenn das Video startet und der Benutzer auf den Zurückbutton klickt, so gelangt er in die vorletzte Activity und nicht in die Activity die meine 6 Fragmente "hält". Wenn er jedoch während des Videos auf den Bildschirm tippt und die Videosteuerung erscheint (MediaController) und er dann auf den Backbutton klickt, so gelangt er wieder zurück zur Activity mit den Fragmenten. Das ist das gewünschte Verhalten. Das erzwinge ich quasi selber durch meinen Code, was ich auch nicht so schön finde.
Code:
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
getActivity().getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
getActivity().setContentView(R.layout.act_video_view);
if (position < filenames.length) {
int rawId = getResources().getIdentifier(filenames[position], "raw", getActivity().getPackageName());
VideoView myVideoView = (VideoView) getActivity().findViewById(R.id.myvideoview);
myVideoView.setVideoPath("android.resource://" + getActivity().getPackageName() + "/" + rawId);
myVideoView.setMediaController(new MediaController(getActivity()));
myVideoView.requestFocus();
myVideoView.start();
myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
getActivity().recreate();
}
});
myVideoView.setMediaController(new MediaController(this.getActivity()) {
public boolean dispatchKeyEvent(KeyEvent event) {
if (event.getKeyCode() == KeyEvent.KEYCODE_BACK) getActivity().recreate();
return super.dispatchKeyEvent(event);
}
});
}
}
Mein Ziel ist es, auch wenn die Steuerelemente des MediaController nicht angezeigt werden, dass beim Drücken des Backbuttons der Benutzer wieder zurück in die beschriebene Activity gelangt.
Hat jemand eine Idee wie das gehen soll?