【问题标题】:How Can I Autoload Items into my ListView with Custom Adapter如何使用自定义适配器将项目自动加载到我的 ListView
【发布时间】:2023-03-08 12:04:01
【问题描述】:

我有一个用于 listView 的自定义适配器,我想像第一次加载我的项目一样加载我的项目第一次加载第 10 行或类似的东西适配器,如果你们帮助我,我将不胜感激。

这是我的自定义适配器

public class DynamicListView extends BaseAdapter {

ImageLoader imageLoader;
Context c;
ArrayList<String> images = new ArrayList<String>();
ArrayList<String> baslik = new ArrayList<String>() ;
ArrayList<String> icerik = new ArrayList<String>() ;
ArrayList<ListViews> lists = new ArrayList<ListViews>();
ArrayList<ArrayList> list1 = new ArrayList<ArrayList>();
ArrayList<String> temp = new ArrayList<String>();


DynamicListView(Context c ,ArrayList<ArrayList> list ,String tur)
{
    this.list1 = list;
    if(tur.equals("News"))
    {
        Log.i("For disi loglar",String.valueOf(list1.size()));
        for(int i = 0; i < list1.size() ; i++)
        {
            temp = list1.get(i);
            Log.i("Inside of For",list1.get(i).get(3).toString());
          images.add( temp.get(3) );
            Log.i("Inside of For",list1.get(i).get(0).toString());
          baslik.add( temp.get(0) );
            Log.i("Inside of For",list1.get(i).get(1).toString());
          icerik.add(temp.get(1));

        }
        temp.clear();
    }
    else if(tur.equals("Announcements"))
    {

    }


    this.c = c;
  imageLoader = ImageLoader.getInstance();

    for(int i= 0 ; i < images.size() ; i++)
    {
        lists.add( new ListViews( images.get(i), baslik.get(i), icerik.get(i) ) );
    }
}

@Override
public int getCount() {
    return lists.size();
}

@Override
public Object getItem(int position) {
    return lists.get(position);
}

@Override
public long getItemId(int position) {
    return position;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    myViewHolder holder = null;
    if(row==null)
    {
        LayoutInflater inflate = (LayoutInflater) c.getSystemService(c.LAYOUT_INFLATER_SERVICE);//Butun layout u inflate'in icine aldik
        row = inflate.inflate(R.layout.dynamic_lists , parent , false ); //gerekli islemler
        holder = new myViewHolder(row);
        row.setTag(holder);
    }
    else
    {
        holder = (myViewHolder) row.getTag();
    }

    imageLoader.displayImage(lists.get(position).image,holder.image );
    holder.baslik.setText(lists.get(position).baslik);
    holder.icerik.setText(lists.get(position).icerik);

    return row;
}



class myViewHolder
{
    private ImageView image;
    private TextView baslik;
    private TextView icerik;
    myViewHolder(View v)
    {
        this.image = (ImageView) v.findViewById(R.id.ivDynamic);
        this.baslik = (TextView) v.findViewById(R.id.tvDynamic1);
        this.icerik = (TextView) v.findViewById(R.id.tvDynamic2);
    }
}


class ListViews
{
    ListViews(String image, String baslik, String icerik)
    {
        this.baslik = baslik;
        this.icerik = icerik;
        this.image = image;
    }
    String image;
    String baslik;
    String icerik;
}
}

【问题讨论】:

    标签: android listview android-listview cwac-endless


    【解决方案1】:

    这可以在滚动列表以自动填充下一批数据时实现。请参阅以下链接:

    1. first

    2. second

    如果您正在寻找更定制的东西,请告诉我。

    【讨论】:

    • 在第二个链接中我应该在哪里实现此代码,我找到了该页面,但我无法弄清楚。
    • 创建一个单独的类'EndlessScrollListener',它又实现了一个异步任务来动态加载数据。完成课程后,将 onScrollListener 添加到列表 yourList.setOnScrollListener(new EndlessScrollListener());
    • 感谢您的回答,这对您很有帮助。
    • 很简单:)。使 MainActivity 扩展 ListActivity(请记住在您的 activity_main xml 中有一个 id = @android:id/list 的 ListView,通常在 onCreate 中设置)。将 onActivityCreated 中的代码复制到您的 onCreate 方法中,并将出现的上下文替换为 this。休息一切都会一样。做必要的进口,它应该工作。告诉我它是否仍然没有,完成后我还可以告诉你如何使用 Fragments 来实现它,但首先要自己尝试。编码愉快。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-15
    相关资源
    最近更新 更多