使用适用于Android应用的自定义适配器将项目动态添加到列表视图

用户名

因此,现在我有一个自定义适配器类,它接收一个Locations数组并将它们添加到ListView中。一切都很好,但是在初始化之后,我想在此列表视图中添加位置。例如,某人可以“添加位置”,并将其添加到此ListView。这是我的主要活动:

package com.example.listviewtest;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;

public class MainActivity extends Activity {

private ListView listView1;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Location location_data[] = new Location[]
    {
        new Location(R.drawable.ic_launcher, "Location 1", "Fruit!", "2 miles", "8-4 mon-fri\nclosed sun"),
        new Location(R.drawable.ic_launcher, "Location 2", "Veggies!", "2 miles", "8-5"),
        new Location(R.drawable.ic_launcher, "Location 3", "Plants!", "2 miles", "8-5"),
        new Location(R.drawable.ic_launcher, "Location 4", "Flowers!", "2 miles", "8-5"),
        new Location(R.drawable.ic_launcher, "Location 5", "Baked Goods!", "2 miles", "8-5")
    };

   LocationAdapter adapter = new LocationAdapter(this, 
            R.layout.listview_item_row, location_data);

   //adapter.add(new Location(R.drawable.ic_launcher, "Location 6", "Veggies!", "2 miles", "8-5"));


    listView1 = (ListView)findViewById(R.id.listView1);

    View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);
    listView1.addHeaderView(header);

    listView1.setAdapter(adapter);
}
}

这有效。我现在想做一些类似的事,adapter.add(new Location(R.drawable.ic_launcher, "Location 6", "Veggies!", "2 miles", "8-5"));然后用数组填充它。

这是我的LocationAdapter类:

package com.example.listviewtest;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class LocationAdapter extends ArrayAdapter<Location>{

Context context; 
int layoutResourceId;    
Location data[] = null;

public LocationAdapter(Context context, int layoutResourceId, Location[] data) {
    super(context, layoutResourceId, data);
    this.layoutResourceId = layoutResourceId;
    this.context = context;
    this.data = data;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    LocationHolder holder = null;

    if(row == null)
    {
        LayoutInflater inflater = ((Activity)context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);

        holder = new LocationHolder();
        holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon);
        holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle);
        holder.details = (TextView)row.findViewById(R.id.details);
        holder.distance = (TextView)row.findViewById(R.id.distance);
        holder.hours = (TextView)row.findViewById(R.id.hours);

        row.setTag(holder);
    }
    else
    {
        holder = (LocationHolder)row.getTag();
    }

    Location location = data[position];
    holder.txtTitle.setText(location.title);
    holder.imgIcon.setImageResource(location.icon);
    holder.details.setText(location.details);
    holder.distance.setText(location.distance);
    holder.hours.setText(location.hours);

    return row;
}

static class LocationHolder
{
    ImageView imgIcon;
    TextView txtTitle;
    TextView details;
    TextView distance;
    TextView hours;
}
}

关于如何实现这一点的任何想法?谢谢。

雷登·瑞克
  1. 在您的适配器中,将Locations data[]from数组更改ArrayList<Location>并覆盖适当的构造函数
  2. 在您的活动中,将变量设为data字段(类型ArrayList<Location>
  3. 添加位置后,您可以使用 data.add(location)
  4. 然后,您可以呼叫notifyDatasetChanged()适配器

示例代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将项目动态添加到ListView的自定义适配器

来自分类Dev

Android - 将搜索栏添加到自定义列表视图和简单适配器

来自分类Dev

自定义文本视图适配器不适用于列表视图

来自分类Dev

从ArrayList动态将textviews添加到自定义适配器

来自分类Dev

如何将两个textViews添加到自定义适配器?

来自分类Dev

在Android的自定义数组适配器中将侦听器添加到EditText

来自分类Dev

使用自定义适配器将数据添加到Listview运行时中

来自分类Dev

将按钮添加到 xml 文件时,使用自定义适配器的 ListView 会被覆盖

来自分类Dev

Android Java:用于滚动和过滤问题的列表视图的自定义适配器

来自分类Dev

使用自定义适配器在列表视图中选择/突出显示多个项目-Android

来自分类Dev

使用自定义适配器和视图持有器的Android列表视图

来自分类Dev

notifyDataSetChanged()不适用于我的自定义适配器

来自分类Dev

自定义ListView适配器不适用于List <List <String >>而不是String []

来自分类Dev

此自定义数组适配器不适用于整数

来自分类Dev

OnItemClick不适用于自定义适配器

来自分类Dev

notifyDataSetChanged() 不适用于自定义 RecyclerView 适配器

来自分类Dev

如何使用Hashmap为自定义列表视图创建自定义适配器

来自分类Dev

防止将重复项添加到“自定义适配器”和数据库中

来自分类Dev

自定义适配器不显示列表视图

来自分类Dev

如何通过自定义适配器为列表视图动态设置imageView源?

来自分类Dev

用于列表视图的自定义适配器内的动画按钮

来自分类Dev

将列表视图的数据从Asynctask传递到自定义列表适配器类

来自分类Dev

使用自定义适配器视图时,如何使列表视图可点击?

来自分类Dev

在自定义列表视图适配器中使用多个视图

来自分类Dev

如何告诉自定义适配器使用我的类列表而不是填充\添加项目?

来自分类Dev

使用自定义适配器从listview搜索项目

来自分类Dev

使用自定义适配器获取检查的项目

来自分类Dev

Android过滤器列表视图自定义适配器

来自分类Dev

android自定义列表视图适配器中的ArrayList索引超出范围异常

Related 相关文章

  1. 1

    如何将项目动态添加到ListView的自定义适配器

  2. 2

    Android - 将搜索栏添加到自定义列表视图和简单适配器

  3. 3

    自定义文本视图适配器不适用于列表视图

  4. 4

    从ArrayList动态将textviews添加到自定义适配器

  5. 5

    如何将两个textViews添加到自定义适配器?

  6. 6

    在Android的自定义数组适配器中将侦听器添加到EditText

  7. 7

    使用自定义适配器将数据添加到Listview运行时中

  8. 8

    将按钮添加到 xml 文件时,使用自定义适配器的 ListView 会被覆盖

  9. 9

    Android Java:用于滚动和过滤问题的列表视图的自定义适配器

  10. 10

    使用自定义适配器在列表视图中选择/突出显示多个项目-Android

  11. 11

    使用自定义适配器和视图持有器的Android列表视图

  12. 12

    notifyDataSetChanged()不适用于我的自定义适配器

  13. 13

    自定义ListView适配器不适用于List <List <String >>而不是String []

  14. 14

    此自定义数组适配器不适用于整数

  15. 15

    OnItemClick不适用于自定义适配器

  16. 16

    notifyDataSetChanged() 不适用于自定义 RecyclerView 适配器

  17. 17

    如何使用Hashmap为自定义列表视图创建自定义适配器

  18. 18

    防止将重复项添加到“自定义适配器”和数据库中

  19. 19

    自定义适配器不显示列表视图

  20. 20

    如何通过自定义适配器为列表视图动态设置imageView源?

  21. 21

    用于列表视图的自定义适配器内的动画按钮

  22. 22

    将列表视图的数据从Asynctask传递到自定义列表适配器类

  23. 23

    使用自定义适配器视图时,如何使列表视图可点击?

  24. 24

    在自定义列表视图适配器中使用多个视图

  25. 25

    如何告诉自定义适配器使用我的类列表而不是填充\添加项目?

  26. 26

    使用自定义适配器从listview搜索项目

  27. 27

    使用自定义适配器获取检查的项目

  28. 28

    Android过滤器列表视图自定义适配器

  29. 29

    android自定义列表视图适配器中的ArrayList索引超出范围异常

热门标签

归档