2016-07-01 13 views
0

Ich habe Android-App für die Anmeldung, wenn Benutzer Login-Daten gibt, die Daten in mehreren Aktivitäten übergeben müssen.Android Holen Sie sich die Daten von Benutzer und übergeben Sie die Daten an mehrere Aktivitäten

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    username=(EditText)findViewById(R.id.user_name); 
    passwrd=(EditText)findViewById(R.id.Pass_word); 
    login=(Button)findViewById(R.id.Login); 
    login.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String email = username.getText().toString(); 
      String password = passwrd.getText().toString(); 
      new Mytask().execute(email, password); 
     } 
    }); 

} 

I E-Mail und Passwort für mehrere Aktivitäten übergeben wollen ..

Ich habe gerade versucht Bundle.
Ich habe E-Mail-Wert als "Name" gespeichert. Und ich habe gerade den Wert an eine andere Aktivität (unter Code) übergeben.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_testpage); 

    Entertext = (EditText) findViewById(R.id.tex_id); 
    Submit = (Button) findViewById(R.id.sub_mit); 
    Submit.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String Text = Entertext.getText().toString(); 
      Intent i = getIntent(); 
      Bundle b = i.getBundleExtra("personBdl"); 
      String name = b.getString("name"); 

      new Mytask().execute(name,Text); 
     } 
    }); 

private class Mytask extends AsyncTask<String, Integer, String> { 

    @Override 
    protected String doInBackground(String... params) { 
     StringBuilder dta = null; 
     try { 
      URL url = new URL("http://xxxyyy.com/insert.php?user=" + params[0] + "&value=" + params[1]); 
      HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
      urlConnection.setRequestMethod("POST"); 
      int statusCode = urlConnection.getResponseCode(); 
      if (statusCode == 200) { 
       InputStream it = new BufferedInputStream(urlConnection.getInputStream()); 
       InputStreamReader read = new InputStreamReader(it); 
       BufferedReader buff = new BufferedReader(read); 
       dta = new StringBuilder(); 
       String chunks; 
       while ((chunks = buff.readLine()) != null) { 
        dta.append(chunks); 
       } 
      } else { 
       //Handle else 
      } 
      return dta.toString(); 
     } catch (ProtocolException e) { 
      e.printStackTrace(); 
     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     return ""; 
    } 

E-Mail hat als "Name" (Bündel) übergeben. "Name" Wert als Parameter [0] an meine PHP-Datei übergeben. Aber Parameter [0] nicht an meine PHP-Datei übergeben.

Könnten Sie mir bitte dabei helfen. Vielen Dank.

Antwort

0

Sie sollten wahrscheinlich SharedPreferences anstelle von Bundle verwenden.

Daten speichern wie folgt aus:

SharedPreferences sPref; 
sPref = getPreferences(MODE_PRIVATE); 
    Editor ed = sPref.edit(); 
    ed.putString("email", etText.getText().toString()); 
    ed.putString("password", etText.getText().toString()); 
    ed.commit(); 

Und es in Ihre Aktivitäten wie diese:

sPref = getPreferences(MODE_PRIVATE); 
    String email = sPref.getString("email", ""); 
    String password = sPref.getString("password", ""); 
    etText.setText(savedText); 

Und ich empfehle Ihnen auch in separaten Thread zu verwenden.

+0

Ich habe das versucht, aber wie kann ich diesen Wert an URL übergeben. Nachdem ich die Preference-E-Mail-Adresse referenziert habe, muss "email" als "user" übergeben werden. In URL URL url = neue URL ("http://xxxyyy.com/insert.php?user=" + params [0] + "& value =" + params [1]); Könnten Sie bitte erzählen Sie mir mehr über separaten Thread. –

+0

@AravindRock ok. Ich habe deine Frage noch einmal gelesen und jetzt habe ich etwas verstanden. Können Sie bitte alle Ihre Variablen umbenennen, um mit einem Kleinbuchstaben zu beginnen? Weil es scheint, als gäbe es eine Klasse namens Text in Java und es könnte einen Konflikt geben –

Verwandte Themen