android baseadapter不工作,只显示最后的元素



我正在开发一个BaseAdaper。我正试图在ListView中添加一些信息。

p.S我有两个日期时间,我检查了不同的日期时间,并尝试在ListView中添加如下内容:这两个日期是9月2日和9月5日,我尝试添加2月、3月、4月、5月

我写了一些代码,但每次在ListView中只添加了5个sep。这是我的baseadaper代码:

public class HollAdapters extends BaseAdapter {
private Context mContext;
private final ArrayList<CinemaInfoModel> hollitems;
//private CinemaInfoModel objBean;
private TextView start_time,holle,time;
private static LayoutInflater inflater = null;
public HollAdapters(Context context, ArrayList<CinemaInfoModel> hollitems) {
    mContext = context;
    this.hollitems = hollitems;
    inflater = (LayoutInflater) mContext
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
    return hollitems.size();
}
@Override
public Object getItem(int position) {
    return null;
}
@Override
public long getItemId(int position) {
    return 0;
}
@SuppressLint("ViewHolder")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View grid;
    grid = new View(mContext);
    grid = inflater.inflate(R.layout.cinema_holl_adapter, null);
    start_time = (TextView) grid.findViewById(R.id.adapter_day);
    holle = (TextView) grid.findViewById(R.id.adapter_holl);
    time = (TextView) grid.findViewById(R.id.adapter_time);
    //objBean = hollitems.get(position);
    start_time.setText(hollitems.get(position).getStartTime());
    Log.wtf("adapter time ", hollitems.get(position).getStartTime());
    holle.setText(hollitems.get(position).getHole());
    String start_time=hollitems.get(position).getTime();
    start_time=start_time.replace(",", "n");
    time.setText(start_time);
    return grid;
}

}

这是我的主要代码的一部分:

for (int j = 0; j < cinemasJsonArray.length(); j++) {
                    CinemaModel cinema = new CinemaModel();
                    cinema.setName(cinemasJsonArray.getJSONObject(j)
                            .getString("cinemaName"));
                    JSONArray timeJsonArray = cinemasJsonArray
                            .getJSONObject(j).getJSONArray("info");
                    cinemaInfoArray = new ArrayList<CinemaInfoModel>();
                    for (int k = 0; k < timeJsonArray.length(); k++) {
                        CinemaInfoModel cinemaTime = new CinemaInfoModel();
                        cinemaTime.setTime(timeJsonArray.getJSONObject(k)
                                .getString("time"));
                        cinemaTime.setHole(timeJsonArray.getJSONObject(k)
                                .getString("hole"));
                        SimpleDateFormat df = new SimpleDateFormat(
                                "MM/dd/yyyy");
                        Date _d = df.parse(timeJsonArray.getJSONObject(k)
                                .getString("start_time"));
                        Date _d1 = df.parse(timeJsonArray.getJSONObject(k)
                                .getString("end_time"));
                        SimpleDateFormat new_df = new SimpleDateFormat(
                                "d MMM");

                        String datetimeis = getDateDiffString(_d1, _d);
                        Log.wtf("differentis ", datetimeis);
                        int abc = Integer.parseInt(datetimeis);
                        for (int l = 0; l < abc; l++) {
                            String ab = dateFormatterforLukka(timeJsonArray
                                    .getJSONObject(k).getString(
                                            "start_time"));
                            SimpleDateFormat df2 = new SimpleDateFormat(
                                    "d MMM");
                            Date datetime = df2.parse(ab);
                            Calendar cal = Calendar.getInstance();
                            cal.setTime(datetime);
                            cal.add(Calendar.DATE, l);
                            datetime = cal.getTime();
                            String ttime = new_df.format(datetime);
                            cinemaTime.setStartTime(ttime);
                            Log.wtf("timeeeeeeeee", ttime);
                            cinemaInfoArray.add(cinemaTime);
                        }
                    }
                    cinema.setCinemTimeInfo(cinemaInfoArray);
                    cinemasArrayList.add(cinema);
                }
                movie.setCinema(cinemasArrayList);
                arrayOfList.add(movie);
            }


public String getDateDiffString(Date dateOne, Date dateTwo) {
    long timeOne = dateOne.getTime();
    long timeTwo = dateTwo.getTime();
    long oneDay = 1000 * 60 * 60 * 24;
    long delta = (timeTwo - timeOne) / oneDay;
    if (delta > 0) {
        for (int i = 0; i < delta; i++) {
        }
        return String.valueOf(delta);
    } else {
        delta *= -1;
        return String.valueOf(delta);
    }
}
public static String dateFormatterforLukka(String inputDate) {
    String inputFormat = "MM/dd/yyyy";
    String outputFormat = "d MMM";
    Date parsed = null;
    String outputDate = "";
    try {
        SimpleDateFormat df_input = new SimpleDateFormat(inputFormat,
                new Locale("en", "US"));
        SimpleDateFormat df_output = new SimpleDateFormat(outputFormat,
                new Locale("en", "US"));
        parsed = df_input.parse(inputDate);
        outputDate = df_output.format(parsed);
        // Log.wtf("outputDate", outputDate);
    } catch (Exception e) {
        outputDate = inputDate;
    }
    return outputDate;
}

我以这种方式调整了ListView:

public class MoviesRolls extends Fragment {
public final static String TAG = MoviesRolls.class.getSimpleName();
private ListView holllistview;
private HollAdapters adapter;
public static ArrayList<CinemaInfoModel> cinemaInfoArray;

private String title, category1, imdb;
public static TextView movies_title, category, imdbreting;

public static MoviesRolls newInstance() {
    return new MoviesRolls();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.moviesholls, container,
            false);
    holllistview = (ListView) rootView.findViewById(R.id.holllistview);

    holllistview = (ListView) rootView.findViewById(R.id.holllistview);
    movies_title = (TextView) rootView.findViewById(R.id.movies_title1);
    category = (TextView) rootView.findViewById(R.id.category1);
    imdbreting = (TextView) rootView.findViewById(R.id.imdbreting1);
    Bundle bundle = getArguments();
    title = bundle.getString("title");
    imdb = bundle.getString("imdb");
    category1 = bundle.getString("category");
    imdbreting.setText(imdb);
    imdbreting.setText(imdb);
    movies_title.setText(title);
    category.setText(category1);

     adapter = new HollAdapters(getActivity(), MainmoviesList.cinemaInfoArray);
        holllistview.setAdapter(adapter);
        adapter.notifyDataSetChanged();
    ;
    return rootView;
}

正如我所说,如果我的两天时间是9月2日和5日,总是会添加3日和4日,尽管日志看起来还可以。

            Log.wtf("timeeeeeeeee", ttime)

我做错了什么?如果有人知道解决方案,请帮助我

感谢

尝试更改:

@Override
public int getCount() {
    return hollitems.size();
}
@Override
public Object getItem(int position) {
    return hollitems.get(position);
}
@Override
public long getItemId(int position) {
    return position;
}

最新更新