[英]How to show json data in Listview with Retrofit2
我是關於Android編程的新手:(
我不知道為顯示數據設置Listview如何在Listview中顯示數據。
MainActivity.java
public class MainActivity extends AppCompatActivity {
private static final String TAG = "fong";
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.listView);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(UdacityService.BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
UdacityService service = retrofit.create(UdacityService.class);
Call<UdacityCatalog> requestCatalog = service.listCatalog();
requestCatalog.enqueue(new Callback<UdacityCatalog>() {
@Override
public void onResponse(Call<UdacityCatalog> call, Response<UdacityCatalog> response) {
if (!response.isSuccessful()) {
Log.i(TAG,"Errorr: " +response.code());
}else{
UdacityCatalog catalog =response.body();
for (Course c : catalog.courses){
Log.i(TAG,c.title);
Log.i(TAG,"--------------");
}
}
}
@Override
public void onFailure(Call<UdacityCatalog> call, Throwable t) {
Log.e(TAG,"Errorr: " + t.getMessage());
}
});
}
}
我想在ListView中顯示數據c.title
Log.i(TAG,c.title)
顯示
I/fong: Richard Kalehoff
I/fong: Firebase Analytics: iOS
I/fong: Firebase Analytics: Android
感謝您的幫助:)
很簡單,首先您必須在Layout中添加一個ListView組件:
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
然后,在您的JAVA代碼中找到它並將其放在實例變量中:
ListView listview;
//in your onCreate() after setContentView():
listview = (ListView) findViewById(R.id.list);
您必須創建一個包含所有標題的列表:
List<String> courses = new ArrayList<>();
for (Course c : catalog.courses){
courses.add(c.title);
}
現在,您必須創建一個SimpleAdapter並將數據傳遞給它:
ArrayAdapter adapter = new ArrayAdapter(MainActivity.this, android.r.layout.simple_list_item_1, courses);
最后,在您的ListView
添加適配器:
listview.setAdapter(adapter);
選課程清單
List<Course> courseList = catalog.courses;
然后創建一個自定義列表適配器,並從該列表中獲取標題並將其顯示在列表的textView中
textView.setText(courseList.get(position).title);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.