Android 从用户获取数据并将数据传递给多个活动
Android Get the data from User And pass the data to multiple activities
我有 android 应用程序用于登录,当用户提供登录详细信息时,数据必须在多个活动中传递。
@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);
}
});
}
我想将电子邮件和密码传递给多个活动..
我刚试过 Bundle。
我将电子邮件值存储为 "name"。
我只是将值传递给另一个 activity(代码下方)。
@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 "";
}
电子邮件已通过 "name"(捆绑包)。
"name" 值作为参数 [0] 传递到我的 php 文件。
但是 params[0] 没有传递到我的 php 文件。
你能帮我解决这个问题吗?谢谢。
您可能应该使用 SharedPreferences 而不是 Bundle。
这样保存数据:
SharedPreferences sPref;
sPref = getPreferences(MODE_PRIVATE);
Editor ed = sPref.edit();
ed.putString("email", etText.getText().toString());
ed.putString("password", etText.getText().toString());
ed.commit();
并像这样在你的活动中得到它:
sPref = getPreferences(MODE_PRIVATE);
String email = sPref.getString("email", "");
String password = sPref.getString("password", "");
etText.setText(savedText);
我也建议你在单独的线程中使用它。
我有 android 应用程序用于登录,当用户提供登录详细信息时,数据必须在多个活动中传递。
@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);
}
});
}
我想将电子邮件和密码传递给多个活动..
我刚试过 Bundle。
我将电子邮件值存储为 "name"。
我只是将值传递给另一个 activity(代码下方)。
@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 "";
}
电子邮件已通过 "name"(捆绑包)。 "name" 值作为参数 [0] 传递到我的 php 文件。 但是 params[0] 没有传递到我的 php 文件。
你能帮我解决这个问题吗?谢谢。
您可能应该使用 SharedPreferences 而不是 Bundle。
这样保存数据:
SharedPreferences sPref;
sPref = getPreferences(MODE_PRIVATE);
Editor ed = sPref.edit();
ed.putString("email", etText.getText().toString());
ed.putString("password", etText.getText().toString());
ed.commit();
并像这样在你的活动中得到它:
sPref = getPreferences(MODE_PRIVATE);
String email = sPref.getString("email", "");
String password = sPref.getString("password", "");
etText.setText(savedText);
我也建议你在单独的线程中使用它。