2017-10-10 101 views
0

json響應,如:如何獲得用戶名和用戶名到spinnenr併發送用戶ID服務器

{ 
    "Users":[ 
     { 
     "username":"Varun", 
     "userid":"626" 
     } 
    ] 
} 

我想在spinner添加用戶和以及獲得用戶ID傳遞給服務器這裏我的代碼。

spinnerUser=new ArrayList<>(); 
          //spinnerUser=new ArrayList<>(); 

          //display first question to the user 
          try { 
           JSONArray jsonArray = (JSONArray) response.get("Users"); 
           for (int i=0;i<jsonArray.length();i++) 
           { 
            JSONObject json=jsonArray.getJSONObject(i); 
            { 
            /*User userData=new User(); 
             userData.setUsername(json.optString("username")); 
             userData.setUserid(json.optString("userid")); 
             jsonSpinner.add(userData); 
             spinnerUser.add(json.optString("username"));*/ 
             String name = json.optString("username").toString(); 
             userid=json.optString("userId").toString(); 
             spinnerUser.add(name); 


            } 
           } 

          }catch (Exception e) 
          { 
           e.printStackTrace(); 
          } 
          ArrayAdapter<String> adapter = new ArrayAdapter<String>(getContext(), 
           R.layout.simple_spinner_item, spinnerUser); 

          adapter.setDropDownViewResource(R.layout.simple_spinner_item); 
          user.setAdapter(adapter); 

我該如何做到這一點,請給我建議。

+2

你得到一些錯誤? –

+0

沒有我沒有得到任何錯誤,能夠獲得用戶名使用字符串,但無法獲得用戶ID傳遞到服務器 – ashish

回答

4

首先創建一個POJO類用戶

public class User { 

    private String name; 
    private String userId; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getUserId() { 
     return userId; 
    } 

    public void setUserId(String userId) { 
     this.userId = userId; 
    } 
@Override 
    public String toString() { 
     return name; 
    } 
} 

然後改變下面

List<User> userList = new ArrayList<>(); 
spinnerUser = new ArrayList<>(); 
//display first question to the user 
try { 
    JSONArray jsonArray = (JSONArray) response.get("Users"); 
    for (int i = 0; i < jsonArray.length(); i++) { 
     JSONObject json = jsonArray.getJSONObject(i); 
     String name = json.optString("username").toString(); 
     String userid = json.optString("userid").toString(); 
     User user = new User(); 
     user.setName(name); 
     user.setUserId(userid); 
     userList.add(user); 
    } 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
ArrayAdapter<User> adapter = new ArrayAdapter<User>(getContext(), R.layout.simple_spinner_item, userList); 
adapter.setDropDownViewResource(R.layout.simple_spinner_item); 
user.setAdapter(adapter); 

你的代碼,用於訪問選定spinner項目。

嘗試下面的代碼

User selectedUser=(User) user.getSelectedItem(); 
Log.e("user Name", selectedUser.getName()); 
Log.e("user id", selectedUser.getuserId()); 
+0

讓我試試這個,謝謝回覆。 – ashish

+0

謝謝你現在的工作 – ashish

0

userid中的「I」在json對象中很小。

userid=json.optString("userid").toString(); 

public class User() 
{ 
    @SerializedName("userid") 
    private String userid; 
    @SerializedName("userName") 
    private String userName; 

    //define getter setter 
} 

用戶Gson得到List。 How to parse json parsing Using GSON in android

+0

我需要將其用戶傳遞到服務器我怎麼能做到這一點,你可以請建議我。 – ashish

+0

你可以定義pojo .. –

1

試試這個:在HashMap

private HashMap<String, String> hmapcat = new HashMap<>(); 

    String name = json.optString("username").toString();         
    String userid=json.optString("userId").toString(); 

    hmapcat.put(name,userid); 

存儲值和鍵,然後OnclickSpinner的你將得到ID,請嘗試以下邏輯。

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 

      @Override 
      public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 

       String items = spinner.getSelectedItem().toString(); 
       Log.i("Selected item : ", items); 
      String id1=hmapcat.get(items); // here you will get ids 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 

      } 

     }); 

我希望這將有助於你

+0

@ashish試試這個簡單的邏輯。 –

相關問題