これは私の簡単なユーザログインasynkタスクであると私は内の値を格納している、ここからも、私はAndroidのお客様ログイン
class logintask extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute() {
pdilog = new ProgressDialog(LoginActivity.this);
pdilog.setMessage("Please Wait....");
pdilog.show();
super.onPreExecute();
}
@Override
protected String doInBackground(String... params) {
JSONObject jsonObject;
try {
response = LoginPostHit.getJSONfromURL(params[0], params[1]);
JSONObject _jobject = new JSONObject(response.toString());
customerid = _jobject.getString("CustomerID");
serverresponse = _jobject.getString("Result");
emailaddress=_jobject.getString("EmailAddress");
customername = _jobject.getString("CustomerName");
mobilenumber = _jobject.getString("MobileNumber");
} catch (JSONException e) {
e.printStackTrace();
}
return response;
}
@Override
protected void onPostExecute(String result) {
pdilog.dismiss();
super.onPostExecute(result);
if (serverresponse.equals("Success")) {
Intent i = new Intent(LoginActivity.this, MainActivity.class);
SharedPreferences.Editor editor = getSharedPreferences(AppConstants.VERIFICATION, MODE_PRIVATE).edit();
editor.putString(AppConstants.LOGGEDIN, "1");
editor.putString(AppConstants.CUSTOMERID, customerid);
editor.putString(AppConstants.CUSTOMERNAME, customername);
editor.putString(AppConstants.CUSTOMERMOBILENUMBER, mobilenumber);
editor.putString(AppConstants.CUSTOMEREMAIL,emailaddress);
editor.commit();
i.putExtra("CustomerName",customername);
startActivity(i);
} else {
final Dialog dialog = new Dialog(LoginActivity.this);
dialog.requestWindowFeature(Window.FEATURE_LEFT_ICON);
dialog.setContentView(R.layout.wrongusrnamepass);
//dialog.setTitle("Wrong Credentials");
TextView text = (TextView) dialog.findViewById(R.id.textDialog);
text.setText("Incorrect Email/Password Combination");
dialog.show();
Button declineButton = (Button) dialog.findViewById(R.id.declineButton);
declineButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
}
}
}
、共有設定でレスポンスのparamsを格納している、これは私のFacebookのログイン方法であり、同じ共有好み
lginbtn = (LoginButton) findViewById(R.id.tvfacebook);
lginbtn.setReadPermissions("public_profile", "email");
//LoginManager.getInstance().logOut();
lginbtn.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
if (AccessToken.getCurrentAccessToken() != null) {
Log.d("Accesstoken", AccessToken.getCurrentAccessToken().getToken());
RequestData(AccessToken.getCurrentAccessToken());
//i = new Intent(LoginActivity.this, MainActivity.class);
//startActivity(i);
}
}
@Override
public void onCancel() {
Toast.makeText(LoginActivity.this, "Login attempt Cancelled", Toast.LENGTH_LONG).show();
}
@Override
public void onError(FacebookException error) {
//infomation.setText("Login attempt failed.");
Toast.makeText(LoginActivity.this, "Login attempt failed", Toast.LENGTH_LONG).show();
}
});
}
@Override
public void onBackPressed() {
super.onBackPressed();
finish();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
public void RequestData(AccessToken accesstoken) {
GraphRequest request = GraphRequest.newMeRequest(accesstoken, new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(JSONObject json, GraphResponse response) {
String firstname = "";
String lastname = "";
json = response.getJSONObject();
try {
if (json != null) {
JSONObject jsonPhoto = null;
JSONObject jsonPhotoo = null;
Session session = null;
// String text = "<b>FirstName :</b> " + json.getString("first_name") + "<b>LastName :</b> " + json.getString("last_name") + "<br><br><b>Email :</b> " + json.getString("email") + "<br><br><b>Profile link :</b> " + json.getString("link");
email = json.getString("email");
name = json.getString("name");
first_name = json.optString("first_name");
last_name = json.optString("last_name");
picture = json.getString("picture");
JSONObject jsonPhoto1 = json.getJSONObject("picture");
if (jsonPhoto1.has("data")) {
jsonPhoto = jsonPhoto1.getJSONObject("data");
url = jsonPhoto.getString("url");
}
new fblogintask().execute(url);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,first_name,last_name,email,picture");
request.setParameters(parameters);
request.executeAsync();
}
class fblogintask extends AsyncTask<String, String, String>
{
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String aVoid) {
super.onPostExecute(aVoid);
if (serverresponse.equals("Success")) {
Intent i = new Intent(LoginActivity.this, MainActivity.class);
SharedPreferences.Editor editor = getSharedPreferences(AppConstants.VERIFICATION, MODE_PRIVATE).edit();
editor.putString(AppConstants.LOGGEDIN, "1");
editor.putString(AppConstants.CUSTOMERID, customerid);
editor.putString(AppConstants.CUSTOMERNAME, customername);
editor.putString(AppConstants.CUSTOMERMOBILENUMBER, mobilenumber);
editor.putString(AppConstants.CUSTOMEREMAIL,emailaddress);
startActivity(i);
} else
{
}
}
@Override
protected String doInBackground(String... voids) {
JSONObject jsonObject;
try {
response = FbLoginPostHit.getJSONfromURL(first_name, last_name, email, voids[0]);
JSONObject _jobject = new JSONObject(response.toString());
customerid = _jobject.getString("CustomerID");
serverresponse = _jobject.getString("Result");
emailaddress=_jobject.getString("EmailAddress");
customername = _jobject.getString("CustomerName");
mobilenumber = _jobject.getString("MobileNumber");
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
今の問題は、私は2番目の活動で共有 県から値を取得していたときに最初のケースでは、それが値を渡しているが、私は2番目にシュレッドプリファレンスから値を取得していたときにということですそれはnullを与えるケース..私が望むユーザーがfbでログインするのか、単純なログインでログインするのかです。私は次のアクティビティで必要なパラメータを取得します。誰かが私にその方法を教えてください
これは、どのように私はanoherアクティビティで値を取得するのですか?customername = prefs.getString(AppConstants.CUSTOMERNAME、 ""); – neha
応答にはキーと値があることを確認しましたか?応答に「CustomerID」タグがあるかどうか – Rahul
はい顧客ID、名前などがあります – neha