Wert einer Activity an eine andere übergeben

  • Antworten:2
Jens Moep
  • Forum-Beiträge: 7

13.01.2014, 14:57:59 via Website

Hallo zusammen,

ich habe ein kleines Problem bei einem Projekt:
Also ich habe 2 Activitys:
MainActivity: Dort schieße ich ein Foto und dieses wird in hier noch dargestellt!

LocatorActivity: Dort wird die aktuelle Position des Gerätes erfasst und in die Adressdaten umgewandelt.

Das Problem: Ich will beide Ergebnisse gleichzeitig in der MainActivity anzeigen. Also das Bild und die Adresse. Die Frage ist also: Wie bekomme ich die Adress Daten aus der LocatorActivity in die MainActivity!

Der komplette Code kommt im nächsten Post

Freue mich über jede Hilfe von euch! Bin gerade am verzweifeln!!!

Danke im voraus!:)

Antworten
Jens Moep
  • Forum-Beiträge: 7

13.01.2014, 14:58:38 via Website

1package com.jonastimo.beschwerde;
2
3import java.io.File;
4import java.io.IOException;
5import java.util.List;
6import java.util.Locale;
7
8import android.app.Activity;
9import android.app.AlertDialog;
10import android.content.Context;
11import android.content.DialogInterface;
12import android.content.Intent;
13import android.content.pm.ActivityInfo;
14import android.database.Cursor;
15import android.graphics.Bitmap;
16import android.graphics.BitmapFactory;
17import android.location.Address;
18import android.location.Geocoder;
19import android.location.Location;
20import android.location.LocationListener;
21import android.location.LocationManager;
22import android.net.Uri;
23import android.os.Bundle;
24import android.os.Environment;
25import android.provider.MediaStore;
26import android.view.View;
27import android.view.View.OnClickListener;
28import android.widget.ArrayAdapter;
29import android.widget.Button;
30import android.widget.ImageView;
31import android.widget.TextView;
32import android.widget.Toast;
33
34public class MainActivity extends LocatorActivity implements LocationListener{
35
36
37
38 private Uri mImageCaptureUri;
39 private ImageView mImageView;
40
41
42 private static final int PICK_FROM_CAMERA = 1;
43 private static final int PICK_FROM_FILE = 2;
44
45
46
47 @Override
48 public void onCreate(Bundle savedInstanceState) {
49
50 super.onCreate(savedInstanceState);
51 setContentView(R.layout.activity_main);
52
53
54
55 final String [] items = new String [] {"From Camera", "From SD Card"};
56 ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.select_dialog_item,items);
57 AlertDialog.Builder builder = new AlertDialog.Builder(this);
58
59 builder.setTitle("Select Image");
60 builder.setAdapter( adapter, new DialogInterface.OnClickListener() {
61 public void onClick( DialogInterface dialog, int item ) {
62 if (item == 0) {
63 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
64 File file = new File(Environment.getExternalStorageDirectory(),
65 "tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg");
66 mImageCaptureUri = Uri.fromFile(file);
67
68 try {
69 intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
70 intent.putExtra("return-data", true);
71
72 startActivityForResult(intent, PICK_FROM_CAMERA);
73 } catch (Exception e) {
74 e.printStackTrace();
75 }
76
77 dialog.cancel();
78 } else {
79 Intent intent = new Intent();
80
81 intent.setType("image/*");
82 intent.setAction(Intent.ACTION_GET_CONTENT);
83
84 startActivityForResult(Intent.createChooser(intent, "Complete action using"), PICK_FROM_FILE);
85 }
86 }
87 } );
88
89 final AlertDialog dialog = builder.create();
90
91 mImageView = (ImageView) findViewById(R.id.iv_pic);
92
93 ((Button) findViewById(R.id.btn_choose)).setOnClickListener(new View.OnClickListener() {
94 @Override
95 public void onClick(View v) {
96 dialog.show();
97 }
98 });
99 }
100
101 @Override
102 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
103 if (resultCode != RESULT_OK) return;
104
105 Bitmap bitmap = null;
106 String path = "";
107
108 if (requestCode == PICK_FROM_FILE) {
109 mImageCaptureUri = data.getData();
110 path = getRealPathFromURI(mImageCaptureUri); //from Gallery
111
112 if (path == null)
113 path = mImageCaptureUri.getPath(); //from File Manager
114
115 if (path != null)
116 bitmap = BitmapFactory.decodeFile(path);
117 } else {
118 path = mImageCaptureUri.getPath();
119 bitmap = BitmapFactory.decodeFile(path);
120 }
121
122 mImageView.setImageBitmap(bitmap);
123 }
124
125 public String getRealPathFromURI(Uri contentUri) {
126 String [] proj = {MediaStore.Images.Media.DATA};
127 Cursor cursor = managedQuery( contentUri, proj, null, null,null);
128
129 if (cursor == null) return null;
130
131 int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
132
133 cursor.moveToFirst();
134
135 return cursor.getString(column_index);}{
136
137
138 }
139
140
141
142
143
144 @Override
145 protected void onStart() {
146 super.onStart();
147
148
149
150 }
151
152 @Override
153 public void onLocationChanged(Location location) {
154 // TODO Auto-generated method stub
155
156 }
157
158 @Override
159 public void onProviderDisabled(String provider) {
160 // TODO Auto-generated method stub
161
162 }
163
164 @Override
165 public void onProviderEnabled(String provider) {
166 // TODO Auto-generated method stub
167
168 }
169
170 @Override
171 public void onStatusChanged(String provider, int status, Bundle extras) {
172 // TODO Auto-generated method stub
173
174 }
175
176}}

Antworten
impjor
  • Forum-Beiträge: 1.793

13.01.2014, 16:55:44 via App

Ohne jetzt deinen kompletten Code gelesen zu haben (warum postest du leere Methoden? Warum überschreibst du onStart, nur um super.onStart() aufzurufen??):
1. Muss das Erfassen der GPS-Position wirklich in einer neuen Activity erfolgen? Du kannst doch auch eine Klasse benutzen, die nicht von Activity erbt.
2. Deine MainActivity erbt von LocationActivity? Was ist das für ein Konstrukt?

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten