Android:如何在列表行内使用字符串数组列表

奥克斯

我在自定义列表视图中苦苦挣扎。我想用row.xml包含五个textview的自定义文件填充列表视图我有一个文本文件mytextfile.txtraw的文件夹。看起来像这样:

SUN-9-JULY-On Sale Now-New York, Time Square
SAT-15-JULY-On Sale Now-London, National Gallery
MON-23-JULY-On Sale Now-Paris, The Eiffel Tower
// More lines here...

如您所见,我从每一行创建一个字符串数组(使用带有“-”的split方法)并将所有字符串数组放在内ArrayList我不知道如何创建我的CustomAdapter课程来完成这项工作。我的其他文件看起来像...

Concerts.java

public class Concerts {

    private List<String[]> mAllConcerts;

    public List<String[]> getAllConcerts() {
        return mAllConcerts;
    }

    public Concerts() {
        mAllConcerts = new ArrayList<>();
        InputStream inputStream = null;
        InputStreamReader inputReader = null;
        BufferedReader bufferedReader;
        String line;
        try {
            inputStream = MainActivity.getGlobalContext().getResources()
                    .openRawResource(R.raw.mytextfile.txt);
            inputReader = new InputStreamReader(inputStream);
            bufferedReader = new BufferedReader(inputReader);
            while (( line = bufferedReader.readLine()) != null) {
                String [] mConcertDetails = line.split("-");
                mAllConcerts.add(mConcertDetails);
            }
        }
        catch (IOException e) {
            // cathing...
        }
        finally {
             // closing...
        }
    }
}

CustomAdapter.java(我什至不知道我是否在正确的路径上)

public class CustomAdapter extends ArrayAdapter<String> {

    TextView concertDayName;
    TextView concertDayNumber;
    TextView concertMonthName;
    TextView concertOnSaleNow;
    TextView concertPlaceName;

    Concerts concerts;

    public CustomAdapter(Context context, String[] values) {
        super(context, R.layout.concert_row, values);
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = LayoutInflater.from(getContext());
        View view = inflater.inflate(R.layout.concert_row, parent, false);

        concerts = new Concerts();

        concertDayName = (TextView) view.findViewById(R.id.concert_day_name);
        concertDayNumber = (TextView) view.findViewById(R.id.concert_day_number);
        concertMonthName = (TextView) view.findViewById(R.id.concert_month_name);
        concertOnSaleNow = (TextView) view.findViewById(R.id.concert_on_sale_now);
        concertPlaceName = (TextView) view.findViewById(R.id.concert_place_name);

        for(int i = 0; i < concerts.getAllConcerts().size(); i++) {
            String[] concertRow = concerts.getAllConcerts().get(i);
            concertDayName.setText(concertRow[0]);
            concertDayNumber.setText(concertRow[1]);
            concertMonthName.setText(concertRow[2]);
            concertOnSaleNow.setText(concertRow[3]);
            concertPlaceName.setText(concertRow[4]);
        }
        return view;
    }
}

MenuConcerts.java(这是将显示列表的片段)

public class MenuConcerts extends Fragment {

    String[] concertDetails;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.concerts_layout, container, false);

        ((MainActivity) getActivity()).setActionBarTitle(getString(R.string.title_spelningar));

        ListAdapter listAdapter = new CustomerAdapter(getActivity(), concertDetails);

        return view;
    }
}
亚历杭德罗·坎帕

我建议您使用对象的ArrayList而不是字符串数组的数组来做CustomAdapter:

Public Class Concert {
private String dayName;
private String dayNumber;
// constructors, getter and setters
}

因此,您只需执行以下操作:

   public class CustomAdapterextends BaseAdapter {

Context context;

protected List<Concert> listConcert;
LayoutInflater inflater;

public ListCarsAdapter(Context context, List<Concert> listConcert) {
    this.listConcert= listConcert;
    this.inflater = LayoutInflater.from(context);
    this.context = context;
}

public int getCount() {
    return listConcert.size();
}

public Concert getItem(int position) {
    return listConcert.get(position);
}

public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder;
    if (convertView == null) {

        holder = new ViewHolder();
        convertView = this.inflater.inflate(R.layout.concert_row,parent, false);

        holder.concertDayName = (TextView) convertView
                .findViewById(R.id.concert_day_name);
        holder.concertDayNumber= (TextView) convertView
                .findViewById(R.id.concert_day_number);
        holder.concertMonthName = (TextView) convertView
                .findViewById(R.id.concert_month_name);
        holder.concertOnSaleNow = (TextView) convertView
                .findViewById(R.id.concert_on_sale_now);
        holder.concertPlaceName = (TextView) convertView
                .findViewById(R.id.concert_place_name);

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    Concert concert = listConcert.get(position);
    holder.concertDayName .setText(concert.getDayName());
    holder.concertDayNumber.setText(concert.getDayNumber());
    //etc.
    return convertView;
}

private class ViewHolder {
    TextView concertDayName;
    TextView concertDayNumber;
    Textview concertMonthName;
    Textview concertOnSaleNow;
    Textview concertPlaceName;
}

}

您的活动:

public class MenuConcerts extends Fragment {

ArrayList<Concert> arrayConcert = new ArrayList<Concert>();


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.concerts_layout, container, false);

        ((MainActivity) getActivity()).setActionBarTitle(getString(R.string.title_spelningar));
 // all the reading file logic here;
        ListAdapter listAdapter = new CustomerAdapter(getActivity(), arrayConcert);

        return view;
    }
}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用字符串元素列表作为数组

来自分类Dev

如何在SQLite中使用字符列表匹配字符串

来自分类Dev

如何在SQLite中使用字符列表匹配字符串

来自分类Dev

如何通过使用字符串从数组列表中获取数据

来自分类Dev

如何使用字符串打印列表的键?

来自分类Dev

如何在数组中使用字符串?

来自分类Dev

如何在bash中使用字符串数组

来自分类Dev

如何在Android中使用字符串数组引用媒体文件?

来自分类Dev

如何使用字符串元组及其替换替换列表中的字符串?

来自分类Dev

如何在jlabel上显示字符串的数组列表?

来自分类Dev

如何在Android中检查布尔字符串数组列表以获取有效响应?

来自分类Dev

使用字符串导入 .dat 列列表以形成多个数组

来自分类Dev

如何在python中的列表中引用字符串

来自分类Dev

如何在python中的列表中引用字符串

来自分类Dev

使用`Regexp`-如何从字符串数组制作列表?

来自分类Dev

使用`Regexp`-如何从字符串数组制作列表?

来自分类Dev

检查列表中是否使用字符串?

来自分类Dev

equals方法使用字符串和列表

来自分类Dev

从字面上使用字符串创建列表

来自分类Dev

如何使用字符串元素和数字生成python列表

来自分类Dev

如何使用字符串和数字将值列表写入文本文件

来自分类Dev

使用“FirebaseAuth.getInstance().signInWithEmailAndPassword”时如何在firebase中使用字符串数组?

来自分类Dev

如何在Vala中使用字符串列表的HashMap?

来自分类Dev

如何在Vala中使用字符串列表的HashMap?

来自分类Dev

如何在 C# 中使用字符串键和值创建字符串多维数组?

来自分类Dev

Android使用字符串数组填充微调器

来自分类Dev

如何在C ++中使用字符串文字初始化char的动态数组?

来自分类Dev

如何在Linq中使用字符串数组All运算符

来自分类Dev

如何在jquery中使用字符串数组对数字进行排序

Related 相关文章

  1. 1

    使用字符串元素列表作为数组

  2. 2

    如何在SQLite中使用字符列表匹配字符串

  3. 3

    如何在SQLite中使用字符列表匹配字符串

  4. 4

    如何通过使用字符串从数组列表中获取数据

  5. 5

    如何使用字符串打印列表的键?

  6. 6

    如何在数组中使用字符串?

  7. 7

    如何在bash中使用字符串数组

  8. 8

    如何在Android中使用字符串数组引用媒体文件?

  9. 9

    如何使用字符串元组及其替换替换列表中的字符串?

  10. 10

    如何在jlabel上显示字符串的数组列表?

  11. 11

    如何在Android中检查布尔字符串数组列表以获取有效响应?

  12. 12

    使用字符串导入 .dat 列列表以形成多个数组

  13. 13

    如何在python中的列表中引用字符串

  14. 14

    如何在python中的列表中引用字符串

  15. 15

    使用`Regexp`-如何从字符串数组制作列表?

  16. 16

    使用`Regexp`-如何从字符串数组制作列表?

  17. 17

    检查列表中是否使用字符串?

  18. 18

    equals方法使用字符串和列表

  19. 19

    从字面上使用字符串创建列表

  20. 20

    如何使用字符串元素和数字生成python列表

  21. 21

    如何使用字符串和数字将值列表写入文本文件

  22. 22

    使用“FirebaseAuth.getInstance().signInWithEmailAndPassword”时如何在firebase中使用字符串数组?

  23. 23

    如何在Vala中使用字符串列表的HashMap?

  24. 24

    如何在Vala中使用字符串列表的HashMap?

  25. 25

    如何在 C# 中使用字符串键和值创建字符串多维数组?

  26. 26

    Android使用字符串数组填充微调器

  27. 27

    如何在C ++中使用字符串文字初始化char的动态数组?

  28. 28

    如何在Linq中使用字符串数组All运算符

  29. 29

    如何在jquery中使用字符串数组对数字进行排序

热门标签

归档