Я хочу отобразить JSONObject в виде списка.
private void showStudentInfo(final List<StudentDetails> studentDetails) {
String userNameValue = getIntent().getStringExtra("name");
if(studentDetails != null) {
final ArrayList<Map<String, Object>> itemDataList = new ArrayList<>();
int size = studentDetails.size();
for(int i=0; i<size; i++)
{
StudentDetails student = studentDetails.get(i);
Map<String, Object> listItemMap = new HashMap<>();
listItemMap.put("id", student.getId());
listItemMap.put("name", student.getId());
listItemMap.put("email", student.getId());
listItemMap.put("phone", student.getId());
listItemMap.put("addresS", student.getId());
itemDataList.add(listItemMap);
}
SimpleAdapter simpleAdapter = new SimpleAdapter(this, itemDataList, R.layout.list_row,
new String[]{"id", "name","email","phone","addresS"},
new int[]{R.id.id_textview,
R.id.name_textview,
R.id.email_textview,
R.id.phone_textview,
R.id.address_textview
});
}
}
JSON
[{
"id": "1",
"name": "Ramesh",
"email": "Ramesh@gmail.com",
"phone": "123456789",
"addresS": "blah blah blah"
},
{
"id": "2",
"name": "Mahesh",
"email": "Mahesh@gmail.com",
"phone": "123456789",
"addresS": "blah blah blah"
},
....
]
OnClickListener
studentListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(final AdapterView<?> parent, View view, int position, long id) {
selectedItem = studentDetails.get(position).getName();
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);
alertDialogBuilder.setPositiveButton("View", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, selectedItem, Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, DetailsActivity.class);
intent.putExtra("name", selectedItem);
startActivity(intent);
}
});
Я хочу, чтобы пользователь нажимал нанапример - mahesh в предыдущем упражнении, тогда я хочу получить информацию об этом имени из файла json - id, name, email, ... и отобразить его в виде списка.
StudentManagerInterface
@GET("rnr0k")
public Call<List<StudentDetails>> getUserByName(
@Query("name") String studentNameValue
);
StudentDetails
Getter and Setter methods.
StudentManager
private static String BASEURL = "https://api.myjson.com/bins/";
public static StudentManagerInterface getStudentManagerService(Converter.Factory converterFactory) {
Retrofit.Builder retrofitBuilder = new Retrofit.Builder();
retrofitBuilder.baseUrl(BASEURL);
if(converterFactory!=null) {
retrofitBuilder.addConverterFactory(converterFactory);
}
Retrofit retrofit = retrofitBuilder.build();
StudentManagerInterface studentManagerInterface = retrofit.create(StudentManagerInterface.class);
return studentManagerInterface;
Я использую модификацию, и я новичокв этом.Спасибо @TaQuangTu за ответ, но я запутался, потому что я не использую JSONArray.Какие изменения я должен сделать в своем коде?