如何从其他索引启动baseAdapter?

时间:2017-05-15 11:25:00

标签: android baseadapter

现在我的baseAdapter从0开始,我需要它从1开始。

我知道此问题之前已经得到解答,但是,我尝试将getItem更改为返回1而getItemId返回1并设置listView.setSelection(1);

但它并没有改变任何事情。

我需要我的adpter从position = 1开始而不是position = 0

position = 1,

位置= 2,

位置= 3 ......等。

而不是

position = 0,

position = 1,

position = 2 ... etc

适配器

package com.example.zdroa.fetchmovies;

import android.content.Context;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import com.squareup.picasso.Picasso;

import java.util.TreeMap;

class ListViewAdaptor extends BaseAdapter {

    private Context mContext;
    private TreeMap<Integer, String> urls;
    private TreeMap<Integer, String> titles;


    ListViewAdaptor(Context context, TreeMap<Integer, String> URLS, TreeMap<Integer, String> TITLES) {
        mContext = context;
        urls = URLS;
        titles = TITLES;
    }

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

    @Override
    public Object getItem(int position) {
        return null;
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {
            convertView = View.inflate(mContext, R.layout.results_layout, null);
        }
        ImageView imageView = (ImageView) convertView.findViewById(R.id.ivPosters);
        TextView textView = (TextView) convertView.findViewById(R.id.results_layout_tv_movie_name);

        Drawable d = mContext.getResources().getDrawable(R.drawable.place_holder_img);


        String link_end = urls.ceilingEntry(position).getValue();
        String title = titles.ceilingEntry(position).getValue();

        Picasso.with(mContext)
                .load("http://image.tmdb.org/t/p/w185" + link_end)
                .placeholder(d)
                .into(imageView);

        textView.setText(title);


        return convertView;
    }
}

fragmentactivity

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

    listView = (ListView) rootView.findViewById(R.id.lvMovies);
    listView.setSelection(1);

    new ImageLoadTask().execute();

    //if fragment is visible
    if (getActivity() != null) {


        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                System.out.println(TITLES.ceilingEntry(position).getValue());
            }
        });
    }
    return rootView;
}

1 个答案:

答案 0 :(得分:0)

改变它,

@Override
public int getCount() {
    return urls.size() - 1;
}

也改变它,希望它对你有用..

 @Override
        public View getView(int position, View convertView, ViewGroup parent) {

            if (convertView == null) {
                convertView = View.inflate(mContext, R.layout.results_layout, null);
            }
            position = position + 1;
            if(urls.size() >= position)
            {
                ImageView imageView = (ImageView) convertView.findViewById(R.id.ivPosters);
                TextView textView = (TextView) convertView.findViewById(R.id.results_layout_tv_movie_name);

                Drawable d = mContext.getResources().getDrawable(R.drawable.place_holder_img);


                String link_end = urls.ceilingEntry(position).getValue();
                String title = titles.ceilingEntry(position).getValue();

                Picasso.with(mContext)
                        .load("http://image.tmdb.org/t/p/w185" + link_end)
                        .placeholder(d)
                        .into(imageView);

                textView.setText(title);

            }

            return convertView;
        }