Horizo​​ntalListView不滚动[Android] [Parse.com]

时间:2014-05-17 11:45:28

标签: java android android-fragments android-listview horizontallist

我一直在尝试使用此代码从Parse.com中提取数据,它适用于GridViewListView。我想要做的是,在HorizontalListView中实现它,我使用this库。这个问题的主要问题是,图像正确加载但列表根本不会滚动,就像我正常使用它的其他任何东西一样,它工作正常。我尝试过加载来自网址的图片。

ParseFragment.java

public class ParseFragment extends Fragment {

public ParseFragment() {
}

HorizontalListView grid;
List<ParseObject> ob;
GridViewAdapter adapter;
private List<GlowoodList> glowoodList = null;
View rootView;
String button_str;
ParseFile image;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    rootView = inflater.inflate(R.layout.fragment_main, container, false);

    Bundle bundle = getArguments();
    button_str = bundle.getString("button");
    Log.e("BUTTON CLICKED", "BUTTON CLICKED: " + button_str);

    Thread t = new Thread(new Runnable() {

        @Override
        public void run() {

            Parse.initialize(ParseFragment.this.getActivity(),
                    "Application_id",
                    "Client_id");
            ParseUser.enableAutomaticUser();
            ParseACL defaultACL = new ParseACL();
            defaultACL.setPublicReadAccess(true);
            ParseACL.setDefaultACL(defaultACL, true);

            new RemoteDataTask().execute();
        }
    });

    t.start();

    return rootView;
}

private class RemoteDataTask extends AsyncTask<Void, Void, Void> {

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
    }

    @Override
    protected Void doInBackground(Void... params) {

        glowoodList = new ArrayList<GlowoodList>();
        try {
            ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
                    button_str);
            query.orderByAscending("position");
            ob = query.find();

            for (ParseObject country : ob) {
                image = (ParseFile) country.get("wallpapers");
                GlowoodList map = new GlowoodList();
                map.setPhone(image.getUrl());
                map.setName((String) country.get("Name"));
                glowoodList.add(map);
            }
        } catch (ParseException e) {
            Log.e("ParseException", "parse: " + e);
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        grid = (HorizontalListView) rootView.findViewById(R.id.grid);
        adapter = new GridViewAdapter(ParseFragment.this.getActivity(),
                glowoodList);
        grid.setAdapter(adapter);
        grid.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Log.e("URL", "URL" + image.getUrl());
            }
        });
    }
}
}

fragment_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.parsedotcom.MainActivity$PlaceholderFragment" >

<com.meetme.android.horizontallistview.HorizontalListView 
  android:id="@+id/grid"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:scrollbarAlwaysDrawHorizontalTrack="true"
  ></com.meetme.android.horizontallistview.HorizontalListView>
</RelativeLayout>

GridViewAdapter.java

 public class GridViewAdapter extends BaseAdapter {

Context context;
LayoutInflater inflater;
ImageLoader image;
private List<GlowoodList> glowoodList = null;
private ArrayList<GlowoodList> arraylist;

public GridViewAdapter(Context context, List<GlowoodList> glowoodList) {
    super();
    this.context = context;
    this.glowoodList = glowoodList;

    this.arraylist = new ArrayList<GlowoodList>();
    inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    this.arraylist.addAll(glowoodList);
    image = new ImageLoader(context);
}

public class ViewHolder{
    ImageView phone;
    TextView text;
}

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

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

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

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

    final ViewHolder holder;
    if(convertView==null){
        holder = new ViewHolder();
        convertView = inflater.inflate(R.layout.grid_images, null);
        holder.phone = (ImageView)convertView.findViewById(R.id.phone);
        holder.text = (TextView)convertView.findViewById(R.id.text);
        convertView.setTag(holder);
    }else{
        holder = (ViewHolder)convertView.getTag();
    }

    image.DisplayImage(glowoodList.get(position).getPhone(),holder.phone);
    holder.text.setText(glowoodList.get(position).getName());

    convertView.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            Bundle bundle = new Bundle();
            bundle.putString("phone", glowoodList.get(position).getPhone());
            bundle.putString("name", glowoodList.get(position).getName());

            Log.e("BUNDLE POSITION", "BUNDLE POSITION:"+bundle);
        }
    });

    return convertView;
}

}

有人可以帮忙吗??! Horizo​​ntalListView根本不滚动! 谢谢

0 个答案:

没有答案