- Forum-Beiträge: 606
20.05.2020, 14:24:39 via Website
20.05.2020 14:24:39 via Website
Hallo zusammen
Ich möchte die Progresbar mitels eines Händler aktualiesieren. Aber das ganze stürzt mit einem nullpointer Exception ab. Ich weiss aber nicht was ich falsch mache.
package ch.robbisoft.kck_app;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Handler;
import android.provider.ContactsContract;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ProgressBar;
import android.widget.RadioGroup;
public class Neu extends AppCompatActivity{
private MediaPlayer mp;
private Integer n_lied;
private Context ctx;
private Integer n_laenge;
//neue Version
private RadioGroup obj_liedwahl;
private ImageButton obj_start;
private ImageButton obj_pause;
private ImageButton obj_stop;
private ProgressBar obj_dauer;
private Handler ereignis;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_neu);
//Neue Version ab hier 19. Mai 2020
ctx = getApplication();
n_lied = R.raw.lied_1;
obj_liedwahl = (RadioGroup) findViewById(R.id.grp_lied);
obj_start = (ImageButton) findViewById(R.id.btn_start);
obj_pause = (ImageButton) findViewById(R.id.btn_pause);
obj_stop = (ImageButton) findViewById(R.id.btn_stop);
obj_dauer = (ProgressBar) findViewById(R.id.prb_lied);
ereignis = new Handler();
ereignis.post(new Runnable() {
@Override
public void run() {
obj_dauer.setProgress(100 * mp.getCurrentPosition() / mp.getDuration());
if(mp.isPlaying()) {
ereignis.postDelayed((Runnable) ctx, 500L);
}
}
});
obj_liedwahl.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.rad_eins:
n_lied = R.raw.lied_1;
break;
case R.id.rad_zwei:
n_lied = R.raw.lied_2;
break;
case R.id.rad_drei:
n_lied = R.raw.lied_3;
break;
case R.id.rad_vier:
n_lied = R.raw.lied_4;
}
}
});
obj_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mp = (MediaPlayer) MediaPlayer.create(ctx, n_lied);
n_laenge = mp.getDuration();
ereignis.postDelayed((Runnable) ctx, 500L);
mp.start();
}
});
obj_pause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mp != null) {
if (mp.isPlaying()){
mp.pause();
}else {
mp.start();
}
}
}
});
obj_stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mp != null) {
mp.stop();
mp.release();
}
}
});
}
@Override
protected void onResume() {
super.onResume();
if( mp != null ){
mp.stop();
mp.release();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if( mp != null ){
mp.stop();
mp.release();
}
}
}
Was mache ich falsch?
Gruss Renato
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.