我正在执行登录任务并以json格式从PHP服务器获取数据。作为回应,我收到一个包含User-ID
的“成功”标签喜欢这个{"message":"You have been successfully login","success":"75"}
我在同一个活动中将该值视为“uid”并转到下一页。现在在下一页中,我想检查用户配置文件。为此,我必须将“uid”作为“params”传递给url并从服务器获取值。但不明白该怎么做。
在下一个活动页面中,我创建了asyncTask来执行操作。
protected String doInBackground(String... args) {
// Building Parameters
List<NameValuePair> params = new ArrayList<NameValuePair>();
// getting JSON string from URL
JSONObject json = jsonParser.makeHttpRequest(PROFILE_URL, "GET",params);
// Check your log cat for JSON reponse
Log.d("Profile JSON: ", json.toString());
try {
// profile json object
profile = json.getJSONObject(TAG_PROFILE);
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
现在我必须将'uid'设置为params。
答案 0 :(得分:2)
使用意图传递数据,
Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("UID", uId);
startActivity(intent)
答案 1 :(得分:1)
使用intent,但是如果你想长时间保留你的uid,你可以使用SharedPrefferences
答案 2 :(得分:1)
方法1:
Class A {
String UID = "3";
public static void main(String[] args){
ClassB.setUid(3);
}
}
Class B {
public static String uid;
public static setUid(String id){
uid = id;
}
}
方法2:
Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("U_ID", uId);
startActivity(intent)
谨防静态变量,程序员通常不喜欢它们并将它们称为邪恶。
答案 3 :(得分:0)
如果您要执行的操作是将数据从一个活动转移到另一个活动,请尝试为您的意图添加额外内容。在您创建启动下一页的意图后,添加类似
的内容intent.putExtra("uid", uid);
将uid添加为额外的。在下一页,您可以通过
检索此数据 Intent intent = getIntent();
int uid = intent.getIntExtra("uid", defaultvalue);
答案 4 :(得分:0)
使用Get请求传递参数有两种方法。
http://myurl.com?variable1=value&variable2=value2
由于HttpClient现已在API 22中弃用,因此您应该使用Google Volley https://developer.android.com/training/volley/simple.html
使用排球库添加参数
/**
* This method is used to add the new JSON request to queue.
* @param method - Type of request
* @param url - url of request
* @param params - parameters
* @param headerParams - header parameters
* @param successListener - success listener
* @param errorListener - error listener
*/
public void executeJSONRequest(int method, String url, final JSONObject params, final HashMap<String, String> headerParams,
Response.Listener successListener,
Response.ErrorListener errorListener) {
JsonObjectRequest request = new JsonObjectRequest(method, url, params,
successListener, errorListener) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
if (headerParams != null)
return headerParams;
else
return super.getHeaders();
}
};
// Add request to queue.
addRequestToQueue(request);
}