在下面显示的代码中,profile包含用户配置文件中的所有数据,如fname,lname和email(以jsonObject格式)。我想提取这些详细信息并填写下面显示的EditText框。
打开此表单后,这些详细信息将自动填充到EditText字段中。
String profile = getIntent().getStringExtra("profile");
try {
JSONObject profileJSON = new JSONObject(profile);
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
fnameET = (EditText) findViewById(R.id.registerfName);
lnameET = (EditText) findViewById(R.id.registerlName);
emailET = (EditText) findViewById(R.id.registerEmail);
任何帮助将不胜感激
答案 0 :(得分:2)
这样做
fnameET = (EditText) findViewById(R.id.registerfName);
lnameET = (EditText) findViewById(R.id.registerlName);
emailET = (EditText) findViewById(R.id.registerEmail);
String profile = getIntent().getStringExtra("profile");
try {
JSONObject profileJSON = new JSONObject(profile);
if(profileJSON.has("fname"))
fnameET.setText(profileJSON.getString("fname"));
if(profileJSON.has("lname"))
lnameET.setText(profileJSON.getString("lname"));
if(profileJSON.has("email"))
emailET.setText(profileJSON.getString("email"));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
答案 1 :(得分:1)
使用JSONObject.getString(key)使用JSONObject中的键获取所有值:
JSONObject profileJSON = new JSONObject(profile);
fnameET = (EditText) findViewById(R.id.registerfName);
fnameET.setText(profileJSON.getString("fname"));
//.... do same to get otger values from profileJSON
在传递给null
方法之前,还要添加empty
或JSONObject
检查从setText
检索到的值
答案 2 :(得分:0)
if(profileJSON!=null){
String userFirstName,userLastName,userEmail;
userFirstName = profileJSON.getString("fname");
userLastName = profileJSON.getString("lname");
userEmail = profileJSON.getString("email");
if(userFirstName!=null){
fnameET.setText(userFirstName);
}
if(userLastName!=null){
lnameET.setText(userLastName);
}
if(userEmail!=null){
emailET.setText(userEmail);
}
}