Ich mache eine Android-Anwendung, die ein Bild von der Kamera nimmt und es dann anzeigt. Ich kann das angeklickte Bild jedoch wahrscheinlich nicht anzeigen, weil onActivityResult()
nicht ausgelöst wird.onActivityResult nicht in Android ausgelöst
Hier ist mein Stück Code. Kann mir jemand vorschlagen, was fehlt mir?
public class Main extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final int CAMERA_PIC_REQUEST = 1337;
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
@override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("Message1", "I reached 2");
//super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CAMERA_PIC_REQUEST) {
// do something
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
ImageView image = (ImageView) findViewById(R.id.imageView1);
image.setImageBitmap(thumbnail);
}
}
});
}
}
Sollte ich @Override entfernen und die onActivityResult() außerhalb der Aktivitätsklasse? –
Die Annotation \ @Override teilt dem Compiler mit, dass die Funktion, die Sie deklarieren, etwas in der übergeordneten Klasse überschreiben soll. Zurzeit haben Sie einen Tippfehler bei der Eingabe von \ @ Override - o wird nicht großgeschrieben! Daher warnt der Compiler Sie nicht, dass Ihre Überschreibung ungültig ist. Sie sollten onActivityResult direkt in Ihrer Aktivitätsklasse deklarieren. Ich habe meine Antwort aktualisiert ... – hopia
Vielen Dank! Es hat funktioniert: D –