【问题标题】:How to use ListAdapter in android?如何在 Android 中使用 ListAdapter?
【发布时间】:2016-11-14 07:44:03
【问题描述】:

我正在使用库asymmetricGridView, 给出的代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    listView = (AsymmetricGridView) findViewById(R.id.listView);

    // Choose your own preferred column width
    listView.setRequestedColumnWidth(Utils.dpToPx(this, 120));
    final List<AsymmetricItem> items = new ArrayList<>();

    // initialize your items array
    adapter = new ListAdapter(this, listView, items);
    AsymmetricGridViewAdapter asymmetricAdapter =
        new AsymmetricGridViewAdapter<>(this, listView, adapter);
    listView.setAdapter(asymmetricAdapter);
}

我在适配器中遇到错误 = new ListAdapter(this, listView, items); 我不知道如何使用 ListAdapter,我是 android 新手,有人可以帮我做吗?

【问题讨论】:

    标签: android gridview android-arrayadapter listadapter


    【解决方案1】:

    ListAdapterinterface,而不是 class。你不能用new 来实例化它,除非你在实例化的时候定义了一个匿名的内部类。

    我建议您搜索有关使用 ListAdapter(以及一般 Android 上的适配器)的教程。我还建议您使用来自同一个库的AsymmetricRecyclerView(因此也使用AsymmetricRecyclerViewAdapter),因为ListView 相当陈旧且笨重,它的功能或多或少已被RecyclerView 取代。

    【讨论】:

      【解决方案2】:

      这是结果

      第 1 步:创建类 Events

      import java.io.Serializable;
      
      public class Events implements Serializable {
      
          private String id;
          private String titleEvent;
          private String dateEvent;
      
          public Events() {
      
          }
      
          public String getId() {
              return id;
          }
      
          public void setId(String id) {
              this.id = id;
          }
      
          public String getTitleEvent() {
              return titleEvent;
          }
      
          public void setTitleEvent(String titleEvent) {
              this.titleEvent = titleEvent;
          }
      
          public String getDateEvent() {
              return dateEvent;
          }
      
          public void setDateEvent(String dateEvent) {
              this.dateEvent = dateEvent;
          }
      }
      

      第二步:创建类ListAdapter extends ArrayAdapter&lt;Events&gt;

      import android.content.Context;
      import android.graphics.Bitmap;
      import android.graphics.BitmapFactory;
      import android.os.AsyncTask;
      import android.util.Log;
      import android.view.LayoutInflater;
      import android.view.View;
      import android.view.ViewGroup;
      import android.widget.ArrayAdapter;
      import android.widget.ImageView;
      import android.widget.TextView;
      
      
      import com.info.quanglv.eventlucky.R;
      import com.info.quanglv.eventlucky.common.Events;
      
      import java.io.InputStream;
      import java.util.ArrayList;
      import java.util.List;
      
      
      public class ListAdapter extends ArrayAdapter<Events> {
      
          List<Events> listProduct = new ArrayList<>();
      
          public ListAdapter(Context context, int resource, List<Events> objects) {
              super(context, resource, objects);
              listProduct = objects;
          }
      
      
          @Override
          public View getView(int position, View convertView, ViewGroup parent) {
      
              View view = convertView;
              if (view == null) {
                  LayoutInflater inflater = LayoutInflater.from(getContext());
                  view = inflater.inflate(R.layout.item_events, null);
              }
              Events events = getItem(position);
      
              if (events != null) {
      
                  TextView txt_Title = (TextView) view.findViewById(R.id.txtTitleEvent);
                  txt_Title.setText(events.getTitleEvent());
                  TextView txt_dateEvent = (TextView) view.findViewById(R.id.txtDateEvent);
                  txt_dateEvent.setText(events.getDateEvent());
                  //ImageView img_Product = (ImageView) view.findViewById(R.id.imgProduct);
                  // img_Product.setImageResource(position);
                  // img_Product.setImageURI(product.getImg());
                  // new DownloadImageTask(img_Product).execute(listProduct.get(position).getImageProduct());
              }
              return view;
          }
      
      
          public static class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
              ImageView bmImage;
      
              public DownloadImageTask(ImageView bmImage) {
                  this.bmImage = bmImage;
              }
      
              protected Bitmap doInBackground(String... urls) {
                  String urldisplay = urls[0];
                  Bitmap mIcon = null;
                  try {
                      InputStream in = new java.net.URL(urldisplay).openStream();
                      mIcon = BitmapFactory.decodeStream(in);
                  } catch (Exception e) {
                      Log.e("Error", e.getMessage());
                      e.printStackTrace();
                  }
                  return mIcon;
              }
      
              protected void onPostExecute(Bitmap result) {
                  bmImage.setImageBitmap(result);
              }
          }
      }
      

      第 3 步:在onCreate() 中,您可以编码: 新的 GetListProduct().execute();

      private class GetListProduct extends AsyncTask<Void, Void, ArrayList<Events>> {
      
          @Override
          protected void onPreExecute() {
              super.onPreExecute();
          }
      
          @Override
          protected ArrayList<Events> doInBackground(Void... params) {
              ArrayList<Events> events = new ArrayList<>();
      
              Events eventsLucky = new Events();
              eventsLucky.setId("1");
              eventsLucky.setTitleEvent("New Year CountDown Party");
              eventsLucky.setDateEvent("10/10/12");
              events.add(eventsLucky);
      
              Events eventsLucky1 = new Events();
              eventsLucky1.setId("2");
              eventsLucky1.setTitleEvent("Tiger Remix Concert 2016 ");
              eventsLucky1.setDateEvent("10/10/12");
              events.add(eventsLucky1);
      
              Events eventsLucky2 = new Events();
              eventsLucky2.setId("3");
              eventsLucky2.setTitleEvent("Tiger Remix Concert 2016 ");
              eventsLucky2.setDateEvent("10/10/1212");
              events.add(eventsLucky2);
      
              Events eventsLucky3 = new Events();
              eventsLucky3.setId("4");
              eventsLucky3.setTitleEvent("Tiger Remix Concert 2016 ");
              eventsLucky3.setDateEvent("10/10/1212");
              events.add(eventsLucky3);
      
              return events;
          }
      
          @Override
          protected void onPostExecute(ArrayList<Events> events) {
              super.onPostExecute(events);
              listView = (ListView) findViewById(R.id.listView);
      
              ListAdapter listAdapter = new ListAdapter(HomeActivity.this, R.layout.activity_home_activiy, events);
              listView.setAdapter(listAdapter);
      
          }
      }
      

      第四步:在onCreate()下插入代码

      private class GetListProduct extends AsyncTask<Void, Void, ArrayList<Events>> {
      
          @Override
          protected void onPreExecute() {
              super.onPreExecute();
          }
      
          @Override
          protected ArrayList<Events> doInBackground(Void... params) {
              ArrayList<Events> events = new ArrayList<>();
      
              Events eventsLucky = new Events();
              eventsLucky.setId("1");
              eventsLucky.setTitleEvent("New Year CountDown Party");
              eventsLucky.setDateEvent("10/10/12");
              events.add(eventsLucky);
      
              Events eventsLucky1 = new Events();
              eventsLucky1.setId("2");
              eventsLucky1.setTitleEvent("Tiger Remix Concert 2016 ");
              eventsLucky1.setDateEvent("10/10/12");
              events.add(eventsLucky1);
      
              Events eventsLucky2 = new Events();
              eventsLucky2.setId("3");
              eventsLucky2.setTitleEvent("Tiger Remix Concert 2016 ");
              eventsLucky2.setDateEvent("10/10/1212");
              events.add(eventsLucky2);
      
              Events eventsLucky3 = new Events();
              eventsLucky3.setId("4");
              eventsLucky3.setTitleEvent("Tiger Remix Concert 2016 ");
              eventsLucky3.setDateEvent("10/10/1212");
              events.add(eventsLucky3);
      
              return events;
          }
      
          @Override
          protected void onPostExecute(ArrayList<Events> events) {
              super.onPostExecute(events);
              listView = (ListView) findViewById(R.id.listView);
              ListAdapter listAdapter = new ListAdapter(HomeActivity.this, R.layout.activity_home_activiy, events);
              listView.setAdapter(listAdapter);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多