Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HorizontaListView不滚动[Android][Parse.com]_Java_Android_Android Fragments_Android Listview_Horizontallist - Fatal编程技术网

Java HorizontaListView不滚动[Android][Parse.com]

Java HorizontaListView不滚动[Android][Parse.com],java,android,android-fragments,android-listview,horizontallist,Java,Android,Android Fragments,Android Listview,Horizontallist,我一直在尝试使用这段代码从Parse.com提取数据,它与GridView和ListView非常配合。我想做的是,在我使用库的HorizontalListView中实现它。主要的问题是,图像加载正确,但列表根本不会滚动,如果我正常使用它来处理任何其他事情,它工作正常。我尝试过从URL加载图像 ParseFragment.java public class ParseFragment extends Fragment { public ParseFragment() { } Horizonta

我一直在尝试使用这段代码从
Parse.com
提取数据,它与
GridView
ListView
非常配合。我想做的是,在我使用库的
HorizontalListView
中实现它。主要的问题是,图像加载正确,但列表根本不会滚动,如果我正常使用它来处理任何其他事情,它工作正常。我尝试过从URL加载图像

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());
            }
        });
    }
}
}
 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;
}

}
GridViewAdapter.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());
            }
        });
    }
}
}
 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;
}

}
公共类GridViewAdapter扩展了BaseAdapter{
语境;
充气机;
图像加载器图像;
私有列表glowoodList=null;
私有ArrayList ArrayList;
公共GridViewAdapter(上下文,列表glowoodList){
超级();
this.context=上下文;
this.glowoodList=glowoodList;
this.arraylist=新的arraylist();
充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
this.arraylist.addAll(glowoodList);
图像=新图像加载器(上下文);
}
公共类视图持有者{
图像查看电话;
文本查看文本;
}
@凌驾
public int getCount(){
返回glowoodList.size();
}
@凌驾
公共对象getItem(int位置){
返回glowoodList.get(位置);
}
@凌驾
公共长getItemId(int位置){
返回位置;
}
@凌驾
公共视图getView(最终整数位置、视图转换视图、视图组父视图){
最终持票人;
if(convertView==null){
holder=新的ViewHolder();
convertView=充气机。充气(R.layout.grid_图像,空);
holder.phone=(ImageView)convertView.findViewById(R.id.phone);
holder.text=(TextView)convertView.findViewById(R.id.text);
convertView.setTag(支架);
}否则{
holder=(ViewHolder)convertView.getTag();
}
image.DisplayImage(glowoodList.get(position.getPhone(),holder.phone);
holder.text.setText(glowoodList.get(position.getName());
setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
Bundle=新Bundle();
bundle.putString(“phone”,glowoodList.get(position.getPhone());
bundle.putString(“name”,glowoodList.get(position.getName());
Log.e(“束位置”,“束位置:”+束);
}
});
返回视图;
}
}
有人能帮忙吗??!HorizontalListView根本不会滚动!!!
谢谢

触摸事件是否被其他任何东西消耗,并且从未到达ListView?(只是个主意)@RaphMclee谢谢你的时间伙伴,但我用了一种完全不同的方法解决了它。