Android - Wie bekomme ich Daten in eine gemeinsame Vorliebe von einer Aktivität zu einer anderen Aktivität?
Habe ich die folgenden zwei Aktivitäten möchte ich zum senden der Werte vorhanden in 'name' und "Unterabteilungen" in die gemeinsame Präferenz für die zweite Aktivität. Ich bin in der Lage zu Holen Sie sich die Werte über die gemeinsame Präferenz, aber ich bin nicht in der Lage zu senden, dass der Wert der zweiten Aktivität. Unten ist mein code...Kann mir jemand helfen, dieses Problem lösen ?
public class UidScreen extends Activity {
EditText editrexts, edits, edites, editess;
Button buttons;
String userId;
LayoutTwoActivity layoutTwoActivity;
DatapushService dsp = null;
CheckBox chkSignedIn;
SharedPreferences settings;
private static final String PREFRENCES_NAME = "myprefrences";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.uid_screen);
editrexts = (EditText) findViewById(R.id.editText1);
edits = (EditText) findViewById(R.id.editText2);
edites = (EditText) findViewById(R.id.editText3);
editess = (EditText) findViewById(R.id.editText4);
chkSignedIn = (CheckBox) findViewById(R.id.chksingin);
//userId = editrexts.getText().toString();
settings = getSharedPreferences(PREFRENCES_NAME,
Context.MODE_PRIVATE);
String name = settings.getString("name", "");
String division = settings.getString("Division", "");
String Subdivision = settings.getString("Subdivison", "");
String range = settings.getString("Range", "");
editrexts.setText(name);
edits.setText(division);
edites.setText(Subdivision);
editess.setText(range);
buttons = (Button) findViewById(R.id.button1);
buttons.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//LayoutTwoActivity ly=new LayoutTwoActivity();
//dsp = new DatapushService();
userId = editrexts.getText().toString();
AssetDetails assetDetails = new AssetDetails();
assetDetails.setUserID(userId);
//ly.assetDetails =assetDetails;
//dsp.assetDetails =assetDetails;
Databaseuid ui = new Databaseuid(UidScreen.this);
ui.open();
String Division = ui.getDivision(userId);
String Subdivision = ui.getSubdivision(userId);
String Range = ui.getRange(userId);
edits.setText(Division);
edites.setText(Subdivision);
editess.setText(Range);
if (chkSignedIn.isChecked()) {
showToast("User Name and Password Saved!!!");
SharedPreferences settings = getSharedPreferences(
PREFRENCES_NAME, Context.MODE_PRIVATE);
settings.edit().putString("name", userId).putString("Division",Division).putString("Subdivison", Subdivision).putString("Range", Range).commit();
showToast("Restart App And see it works!!!");
} else {
showToast("Tick keep me logged in!!!");
}
ui.close();
}
});
}
public void opennewactivity(View view) {
//Do something in response to button !! Used to call MainActivity Class on click of the image !
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("str4", userId);
startActivity(intent);
}
private void showToast(String msg) {
Toast.makeText(UidScreen.this, msg, Toast.LENGTH_LONG).show();
}
}
2. Aktivität:
public class LayoutTwoActivity extends Activity {
String pref,pref2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.xml_second);
//SharedPreference settings;
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
pref = settings.getString("name", "");
pref2 = settings.getString("Subdivison",null);
Toast.makeText(getApplicationContext(), pref,
Toast.LENGTH_LONG).show();
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Bist du eigentlich Lesen von zwei verschiedene Einstellungsdateien. Überprüfen Sie diese Frage.
diese Einstellungen
unterscheiden sich von diesen
versuchen Sie diese Option, um Freigegebene Pref
geteilt pref
SharedPreferences settins = PreferenceManager .getDefaultSharedPreferences(Youractivity.this);
. SchreibengetApplicationContext()
anstelle der Aktivität das problem gelöst.Habe gerade die folgende ändern und es funktionierte, vielen Dank Enrichman
In Ihrer ersten Tätigkeit
In Ihrer zweiten Tätigkeit