簡體   English   中英

如何使用Retrofit2在Listview中顯示json數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM