【发布时间】:2017-12-21 09:22:19
【问题描述】:
我只想使用 id 从 json 对象中获取特定数据并将其显示在 textview 中。我能够在列表视图中获取数据。但我想在不使用 listview 到基本 textview 的情况下获取数据。使用每个 id。
**只需要获取 id="1" json 数据并将其显示到 textview 名称、手机、年龄、电子邮件中。点击按钮后**
Json 数据
{
"details": [
{
"age": "56",
"email": "john@gmail.com",
"id": "1",
"mobile": "985323154",
"name": "John"
},
{
"age": "0",
"email": "",
"id": "26",
"mobile": "0",
"name": "1"
}
]
}
显示数据类
public class DisplayData extends AppCompatActivity {
String BASE_URL = "";
ArrayList<String> id = new ArrayList<>();
ArrayList<String> name = new ArrayList<>();
ArrayList<String> age = new ArrayList<>();
ArrayList<String> mobile = new ArrayList<>();
ArrayList<String> email = new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
displayData();
}
public void displayData() {
RestAdapter adapter = new RestAdapter.Builder()
.setEndpoint(BASE_URL) //Setting the Root URL
.build();
AppConfig.read api = adapter.create(AppConfig.read.class);
api.readData(new Callback<JsonElement>() {
@Override
public void success(JsonElement result, Response response) {
String myResponse = result.toString();
Log.d("response", "" + myResponse);
try {
JSONObject jObj = new JSONObject(myResponse);
int success = jObj.getInt("success");
if (success == 1) {
JSONArray jsonArray = jObj.getJSONArray("details");
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jo = jsonArray.getJSONObject(i);
id.add(jo.getString("id"));
name.add(jo.getString("name"));
age.add(jo.getString("age"));
mobile.add(jo.getString("mobile"));
email.add(jo.getString("email"));
}
}
@Override
public void failure(RetrofitError error) {
Log.d("Failure", error.toString());
Toast.makeText(DisplayData.this, error.toString(), Toast.LENGTH_LONG).show();
}
}
);
}
}
【问题讨论】:
-
您希望用户界面是什么样的?请提供屏幕截图或模型。
-
您正在使用 org.json 和 Retrofit?为什么不创建一个 POJO 并让 Retrofit 为您解析响应?你也可以考虑改用 Retrofit 2。
-
随心所欲地发布屏幕短片
标签: android arrays json retrofit retrofit2