2016-11-14 48 views
-1

我使用的库asymmetricGridView, 给出的代码:如何在android中使用ListAdapter?

@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); 
} 

我getiing错误适配器=新ListAdapter(这一点,ListView中,项目); 我不知道如何使用ListAdapter,我是新来的android,任何人都可以帮我解决它吗?

回答

0

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

我建议你做一些关于使用ListAdapter(和一般Android上的适配器)的教程。我还建议您使用AsymmetricRecyclerView来替代相同的库(因此也使用AsymmetricRecyclerViewAdapter),因为ListView比较陈旧且笨重,它的功能几乎已被RecyclerView替代。

0

这就是结果

第1步:创建类事件。

import java.io.Serializable;

公共类活动实现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扩展ArrayAdapter

 
 
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()你可以编码: new 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); 
 

 
     } 
 
    }

步骤4:的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); 
 

 
     } 
 
    }

相关问题