Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.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
Android 在片段内使用RecyclerView解析数据库时遇到问题_Android_Android Fragments_Parse Platform_Android Recyclerview - Fatal编程技术网

Android 在片段内使用RecyclerView解析数据库时遇到问题

Android 在片段内使用RecyclerView解析数据库时遇到问题,android,android-fragments,parse-platform,android-recyclerview,Android,Android Fragments,Parse Platform,Android Recyclerview,我对Android编程非常陌生,我正在尝试将解析数据库连接到我的RecyclerView。当我打开这个片段时,它会在失败时关闭整个应用程序。以前,我的事件对象只有一个参数,我查询了数据库的一个部分,但我不得不将其更改为单独的对象,因为我需要数据库的更多部分。我还尝试将不同部分中的RecyclerView移入和移出查询方法,但它仍然没有打开,因为它在我确定我的问题在于EventFragment类之前工作正常 import android.os.Bundle; import android.supp

我对Android编程非常陌生,我正在尝试将解析数据库连接到我的RecyclerView。当我打开这个片段时,它会在失败时关闭整个应用程序。以前,我的事件对象只有一个参数,我查询了数据库的一个部分,但我不得不将其更改为单独的对象,因为我需要数据库的更多部分。我还尝试将不同部分中的RecyclerView移入和移出查询方法,但它仍然没有打开,因为它在我确定我的问题在于EventFragment类之前工作正常

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.parse.FindCallback;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;

import java.util.Collections;
import java.util.List;


/**
 * A simple {@link Fragment} subclass.
 *
 */

public class EventFragment extends android.support.v4.app.Fragment {

    TextView text;

    private RecyclerView recyclerView;
    public static adapter adapt;

    public static List<Event> dbObjects = Collections.emptyList();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        //Log.d("IN EVENT FRAGMENT", "WE ARE IN!!!!");

        // Inflate the layout for this fragment
        final View v = inflater.inflate(R.layout.fragment_event, container, false);

        ParseQuery<ParseObject> query = ParseQuery.getQuery("Posts");
        query.whereExists("title");
        query.findInBackground(new FindCallback<ParseObject>() {
            public void done(List<ParseObject> objList, ParseException e) {
                //dbObjects = scoreList;
                //adapt = new adapter(getActivity(), dbObjects);
                if (e == null) {

                    for (ParseObject obj : objList) {
                        //Log.d("DEBUG", "The username is:" + dbObjects.size());

                        Event event = new Event(obj.getString("title"), obj.getString("eventDate"));


                        dbObjects.add(event);
                    }



                } else {
                    Log.d("HELLO", "Something went wrong!");
                }


            }
        });

        //RecyclerView
        adapt = new adapter(getActivity(), dbObjects);
        recyclerView = (RecyclerView) v.findViewById(R.id.recycle);
        recyclerView.setAdapter(adapt);
        recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
        final LinearLayoutManager llm = new LinearLayoutManager(getActivity());
        recyclerView.setLayoutManager(llm);


        return v;
    }
}
Logcat

09-10 09:10:02.116    6767-6767/? I/art﹕ Not late-enabling -Xcheck:jni (already on)
09-10 09:10:03.231    6767-6779/suyash.sjsu_cs_club I/art﹕ Background sticky concurrent mark sweep GC freed 1793(132KB) AllocSpace objects, 0(0B) LOS objects, 0% free, 35MB/35MB, paused 3.498ms total 116.782ms
09-10 09:10:03.241    6767-6779/suyash.sjsu_cs_club W/art﹕ Suspending all threads took: 9.643ms
09-10 09:10:03.452    6767-6779/suyash.sjsu_cs_club W/art﹕ Suspending all threads took: 10.751ms
09-10 09:10:03.922    6767-6790/suyash.sjsu_cs_club D/OpenGLRenderer﹕ Render dirty regions requested: true
09-10 09:10:03.928    6767-6767/suyash.sjsu_cs_club D/﹕ HostConnection::get() New Host Connection established 0xae0b8e70, tid 6767
09-10 09:10:03.953    6767-6767/suyash.sjsu_cs_club D/Atlas﹕ Validating map...
09-10 09:10:04.041    6767-6790/suyash.sjsu_cs_club D/﹕ HostConnection::get() New Host Connection established 0xa6c91360, tid 6790
09-10 09:10:04.069    6767-6790/suyash.sjsu_cs_club I/OpenGLRenderer﹕ Initialized EGL, version 1.4
09-10 09:10:04.188    6767-6790/suyash.sjsu_cs_club D/OpenGLRenderer﹕ Enabling debug mode 0
09-10 09:10:04.205    6767-6790/suyash.sjsu_cs_club W/EGL_emulation﹕ eglSurfaceAttrib not implemented
09-10 09:10:04.205    6767-6790/suyash.sjsu_cs_club W/OpenGLRenderer﹕ Failed to set EGL_SWAP_BEHAVIOR on surface 0xa6cab0c0, error=EGL_SUCCESS
09-10 09:10:21.407    6767-6767/suyash.sjsu_cs_club D/AndroidRuntime﹕ Shutting down VM
09-10 09:10:21.408    6767-6767/suyash.sjsu_cs_club E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: suyash.sjsu_cs_club, PID: 6767
    java.lang.UnsupportedOperationException
            at java.util.AbstractList.add(AbstractList.java:404)
            at java.util.AbstractList.add(AbstractList.java:425)
            at suyash.sjsu_cs_club.EventFragment$1.done(EventFragment.java:66)
            at suyash.sjsu_cs_club.EventFragment$1.done(EventFragment.java:54)
            at com.parse.ParseTaskUtils$2$1.run(ParseTaskUtils.java:115)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
09-10 09:11:52.915    6767-6774/suyash.sjsu_cs_club W/art﹕ Suspending all threads took: 5.668ms

另外,这是一个单独的问题,可能需要第二篇文章,但我如何为内容在数据库中定期更改的RecyclerView创建onItemClickListener?

问题在于这行代码:

public static List<Event> dbObjects = Collections.emptyList();
下面是
AbstractList
中的
add()
方法的片段

@Override
public boolean add(E object) {
    add(size(), object);
    return true;
}    

public void add(int location, E object) {
    throw new UnsupportedOperationException();
}

请添加错误的堆栈跟踪。
public static List<Event> dbObjects = Collections.emptyList();
public static List<Event> dbObjects = new LinkedList<Event>();
private static final class EmptyList extends AbstractList
        implements RandomAccess, Serializable {
    private static final long serialVersionUID = 8842843931221139166L;

    @Override public boolean contains(Object object) {
        return false;
    }

    @Override public int size() {
        return 0; 
    }

    @Override public Object get(int location) {
        throw new IndexOutOfBoundsException();
    }

    @Override public Iterator iterator() {
        return EMPTY_ITERATOR;
    }

    private Object readResolve() {
        return Collections.EMPTY_LIST;
    }
}
@Override
public boolean add(E object) {
    add(size(), object);
    return true;
}    

public void add(int location, E object) {
    throw new UnsupportedOperationException();
}