2016-10-06 10 views
0

HashmapをresponseListenerに正しく渡すにはどうすればよいですか?私はアンドロイドで新しくて申し訳ありません、私を案内してください。私はそれがユーザーのデータを格納するセッションマネージャーを持っているので、ユーザーは再度ログインする必要はないかもしれませんが、私はそれを取得して、それを私のVolleyレスポンスリスナーに適用するのが苦労しています。私は私のPHPファイルのWHEREとしてそれが必要な理由でuser_idを取得したい。私はこれが単純だと思います。ハッシュマップの値を適用または変換する方法はわかりません。私はMY USER_IDを渡す必要があるのはここ 主な活動Hashmapの値を取得してVolleyのResponseListenerに渡す方法

public class SendToDatabase extends AppCompatActivity { 
RatingBar ratingBar; 
TextView txtRatingValue; 
SessionManager session; 
//Button btnSubmit; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_send_to_database); 
//HERE IS THE SESSIONMANAGER CODE 
    session = new SessionManager(getApplicationContext()); 
    HashMap<String, Integer> user_int = session.getUserLexileNID(); 

    final Integer user_id = user_int.get(SessionManager.KEY_USER_ID); 

    final EditText etComment = (EditText) findViewById(R.id.etComment); 
    final Button bSubmit = (Button) findViewById(R.id.bSubmit); 
    final RatingBar ratingBar = (RatingBar) findViewById(R.id.ratingBar); 
    addListenerOnRatingBar(); 
    // addListenerOnButton(); 

    bSubmit.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      final String comment = etComment.getText().toString(); 
      // final int rate = ratingBar.getNumStars(); 
      final String rate = txtRatingValue.getText().toString(); 

      Response.Listener<String> responseListener = new Response.Listener<String>() { 
       @Override 
       public void onResponse(String response) { 
        try { 
         JSONObject jsonResponse = new JSONObject(response); 
         boolean success = jsonResponse.getBoolean("success"); 

         if (success){ 
          Toast.makeText(SendToDatabase.this,"success"+comment,Toast.LENGTH_SHORT).show(); 
          //Intent intent = new Intent (SendToDatabase.this, CommentArea.class); 
          // SendToDatabase.this.startActivity(intent); 
         } else { 
          // Toast.makeText(SendToDatabase.this,"something went wrong try again later", Toast.LENGTH_SHORT).show(); 
          // Toast.makeText(SendToDatabase.this, "There might be some problem in the server side, please try again later", Toast.LENGTH_SHORT).show(); 
          // Toast.makeText(SendToDatabase.this, response.toString(), Toast.LENGTH_SHORT).show(); 

         } 
        } catch (JSONException e) { 
         e.printStackTrace(); 
        } 
       } 
      }; 

// ISを

  CommentRateRequest commentRateRequest = new CommentRateRequest(comment, rate, user_id, responseListener); 
      RequestQueue queue = Volley.newRequestQueue(SendToDatabase.this); 
      queue.add(commentRateRequest); 
     } 
    }); 

} 
public void addListenerOnRatingBar() { 

    ratingBar = (RatingBar) findViewById(R.id.ratingBar); 
    txtRatingValue = (TextView) findViewById(R.id.tvRatingValue); 

    // if rating value is changed, 
    //display the current rating value in the result (textview) automatically 
    ratingBar.setOnRatingBarChangeListener(new RatingBar.OnRatingBarChangeListener() { 
     public void onRatingChanged(RatingBar ratingBar, float rating, 
            boolean fromUser) { 

      txtRatingValue.setText(String.valueOf(rating)); 

     } 
    }); 
}} 

CommentRateRequestの他の人が自分のシングルトンとしてこれを呼び出します。ここ

が私のコードであるおかげで、私を助けてくださいクラス

public CommentRateRequest (String comment, String rate,int user_id Response.Listener<String>listener){ 
    super(Method.POST, CommentRateUrl, listener, null); 
    params = new HashMap<>(); 
    params.put("comment", comment); 
    params.put("rate", rate); 
    params.put("user_id", user_id+""); 
    // params.put("book_id", book_id+""); 
} 

私のSessionManagerのコード:

public void createLoginSession(String Fname, String Lname, Integer user_id, Integer lexile, String role_name, String grade_name, String password){ 
    editor.putBoolean(IS_LOGIN, true); 
    editor.putString(KEY_FNAME, Fname); 
    editor.putString(KEY_LNAME, Lname); 
    editor.putInt(KEY_USER_ID, user_id); 
    editor.putInt(KEY_LEXILE, lexile); 
    editor.putString(KEY_ROLE_NAME, role_name); 
    editor.putString(KEY_GRADE_NAME, grade_name); 
    editor.putString(KEY_PASSWORD, password); 

    editor.commit(); 
} 


//Part of the tutorial dont seem to have any problem 
public HashMap<String, String> getUserDetails(){ 
    HashMap<String, String> user = new HashMap<String, String>(); 
    user.put(KEY_FNAME, pref.getString(KEY_FNAME, null)); 
    user.put(KEY_LNAME, pref.getString(KEY_LNAME, null)); 
    user.put(KEY_ROLE_NAME, pref.getString(KEY_ROLE_NAME, null)); 
    user.put(KEY_GRADE_NAME, pref.getString(KEY_GRADE_NAME, null)); 
    user.put(KEY_PASSWORD, pref.getString(KEY_PASSWORD, null)); 
    return user; 
} 

答えて

0

"、"ありがとうございました。 ..

関連する問題