Intent Problem

  • 7 Antworten
  • Letztes Antwortdatum
L

lumo2707

Neues Mitglied
0
Hi,

über den unten stehenden Code übergebe ich eine Integer Variable an ein Intent:


public void onClick(View v) {
int index = 0;

for (int i = 0; i < m_NrPlayers; i++)
{
if (m_PlayerImage.getId() == v.getId())
{
index = i;
break;
}
}

Intent intent = new Intent();
intent.putExtra("result_IV_NR", index);
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
}
});

Dann wird die onActivityResult Methode aufgerufen:

public void onActivityResult(int requestCode, int resultCode, Intent data)
{
if (resultCode == RESULT_OK) {

if (requestCode == SELECT_PICTURE) {

int IV_Nr = data.getIntExtra("result_IV_NR", 0);

}

}

IV_Nr hat jedoch immer den Default-Wert von 0, aber wieso?
 
Ich gehe davon aus, dass
Code:
if (m_PlayerImage[i].getId() == v.getId())
{
   index = i;
   break;
}
nie aufgerufen wird :)

Es ist schwer, herauszufinden wo der fehler liegt. Da du sagst es kommt "0" als ergebnis.
Denn index ist 0, wenn die if nicht ausgerufen wird. (Ergo, vielleicht wird diese ja übergeben?! Nur eben nicht so wie du es möchtest).
Oder es wird nicht übergeben und dann ist er 0, da dein default 0 ist..

Also, ändere mal dein default ODER dein index-Initialisierung. Dann siehst du ob was falsches gemacht wird, oder der intent wirklich falsch übergeben wird..

Gruß
 
Die For-Schleife funktioniert ;) hab ich schon debugged! Habs gerade eben auch nach dem Wert 3 probiert... nimmt trotzdem die erste ImageView!
Kann das sein, dass ich den Intentyp auf Image setze und der dann Integer nicht übergeben kann?
 
Ahh, stop. Selbes problem hatte ich auch xD
Überleg dir mal, welchem Intent du das extra mit gibst?! ;)

Das kann so nicht funktionieren. Du musst dir da eine andere übergabe überlegen...

Gruß
 
kann ich als übergabeparameter auch 2 intents mitgeben?
 
Hä?
Wie meinst du?

Das aktuelle problem ist, dass du dem Intent, welches du beim createChooser-auswählst, das extra mit gibst. Da du als Typ image angibst, wird dir wahrscheinlih eine Galerie oder ähnliches vorgeschalgen. Diese Galerie erhält das extra. Gibt aber, beim schließen, diesen nicht wieder zurück an dein "forResult"-Methode...
Du kannst dir aber einfach die zahl in einer Klassen-Variable speichern und in der oNResult wieder holen....

Gruß
 
Kannst mir das schnell bitte zeigen :) Bin noch ein halber Anfänger! :D
 
Code:
public class XYZ {
   int mSuperI = 0;

   public void onCreate() {

      for (int i = 0; i < m_NrPlayers; i++)
      {
          if (m_PlayerImage[i].getId() == v.getId())
          {   
               mSuperI = i;
               break;
          }
      }
   }

   public void onActivtiyResult() {
       // Hier kannst du einfach mit mSuperI arbeiten
   }
}
 
Zurück
Oben Unten