清单ParseData结果simpleListView在Android [英] List ParseData results to simpleListView on Android

查看:236
本文介绍了清单ParseData结果simpleListView在Android的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要列出我的ArrayList项目的简单列表视图。我试过的ArrayList(Iller河畔)到字符串数组(mListe)转换,但我不能。它给了我永远的NullPointerException。什么是我的错误,我怎么能解决这个问题,谢谢你的任何帮助。

这是我的名单片段;

 公共类ListeFragment扩展ListFragment {公共查看MView的;
公众的String [] mListe;
公众的ListView ListView的;
公众的ArrayList<串GT; Iller河畔=新的ArrayList<串GT;();
@覆盖
公共查看onCreateView(LayoutInflater充气器,容器的ViewGroup,捆绑savedInstanceState){    MVIEW = inflater.inflate(R.layout.fragment_liste,集装箱,FALSE);    返回MView的;
}@覆盖
公共无效onViewCreated(查看视图,捆绑savedInstanceState){
    super.onViewCreated(查看,savedInstanceState);    getOnlineDataFromParse();
}私人无效setIlcelerArray(){    ArrayAdapter<串GT;适配器=新ArrayAdapter<串GT;(getListView()的getContext(),R.layout.ilce_view,mListe);
    setListAdapter(适配器);    ListView控件=(ListView控件)mView.findViewById(android.R.id.list);
    listView.setAdapter(适配器);
}@覆盖
公共无效onResume(){
    super.onResume();    googleAnalyticsSendScreen();    listView.setOnItemClickListener(新AdapterView.OnItemClickListener(){
        @覆盖
        公共无效onItemClick(适配器视图<>母公司,观景,INT位置,长的id){
            意向意图=新意图(getActivity(),ListVets.class);            intent.putExtra(位置,位置);
            intent.putExtra(ILCE,mListe [位置]);
            startActivity(意向);
            //谷歌分析事件发送方
            字符串secilenilce =SeçilenILCE+ mListe [位置]            跟踪T =((GlobalState)getActivity()。getApplication())。了解getTracker(
                    GlobalState.TrackerName.APP_TRACKER);            t.se​​nd(新HitBuilders.EventBuilder()
                    .setCategory(İlçelerListesi)
                    .setAction(SeçilenILCE)
                    .setLabel(secilenilce)
                    。建立());
        }
    });
}私人无效getOnlineDataFromParse(){    ParseQuery<&的parseObject GT;查询= ParseQuery.getQuery(Veterinerler);
    query.setLimit(1000);
    query.findInBackground(新FindCallback<&的parseObject GT;(){        公共无效完成(列表<&的parseObject GT; vetList,ParseException的E){
            如果(E == NULL){                的for(int i = 0; I< vetList.size();我++){                    iller.add(vetList.get(I).getString(IL));                }                mListe = iller.toArray(新的String [iller.size()]);                setIlcelerArray();            }其他{                AlertDialog.Builder建设者=新AlertDialog.Builder(getActivity());
                builder.setTitle(的getString(R.string.parse_online_query_error_title));
                builder.setMessage(的getString(R.string.parse_online_query_error_message));
                builder.setPositiveButton(android.R.string.ok,NULL);
                AlertDialog对话框= builder.create();
                dialog.show();
            }        }    });}

有是logcat的;

  E / AndroidRuntime:致命异常:主要
显示java.lang.NullPointerException
        在com.esmobileinc.vetmapp.u.k(来源不明)
        在android.support.v4.app.Fragment.C(来源不明)
        在android.support.v4.app.v.a(来源不明)
        在android.support.v4.app.v.a(来源不明)
        在android.support.v4.app.v.d(来源不明)
        在android.support.v4.app.v.e(来源不明)
        在android.support.v4.app.v.b(来源不明)
        在android.support.v4.app.aa.b(来源不明)
        在android.support.v4.view.ViewPager.a(来源不明)
        在android.support.v4.view.ViewPager.c(来源不明)
        在android.support.v4.view.ViewPager.onMeasure(来源不明)
        在android.view.View.measure(View.java:15518)
        在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
        在android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        在android.view.View.measure(View.java:15518)
        在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
        在android.support.v7.internal.widget.ActionBarOverlayLayout.onMeasure(来源不明)
        在android.view.View.measure(View.java:15518)
        在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
        在android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        在android.view.View.measure(View.java:15518)
        在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
        在android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
        在android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
        在android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
        在android.view.View.measure(View.java:15518)
        在android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
        在android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        在com.android.internal.policy.impl.PhoneWindow $ DecorView.onMeasure(PhoneWindow.java:2176)
        在android.view.View.measure(View.java:15518)
        在android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874)
        在android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1089)
        在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265)
        在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
        在android.view.ViewRootImpl $ TraversalRunnable.run(ViewRootImpl.java:4351)
        在android.view.Choreographer $ CallbackRecord.run(Choreographer.java:749)
        在android.view.Choreographer.doCallbacks(Choreographer.java:562)
        在android.view.Choreographer.doFrame(Choreographer.java:532)
        在android.view.Choreographer $ FrameDisplayEventReceiver.run(Choreographer.java:735)
        在android.os.Handler.handleCallback(Handler.java:725)
        在android.os.Handler.dispatchMessage(Handler.java:92)
        在android.os.Looper.loop(Looper.java:137)
        在android.app.ActivityThread.main(ActivityThread.java:5041)
        在java.lang.reflect.Method.invokeNative(本机方法)
        在java.lang.reflect.Method.invoke(Method.java:511)
        在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793)
        在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
        在dalvik.system.NativeStart.main(本机方法)

感谢您!


解决方案

  ParseQueryAdapter<&的parseObject GT; mainAdapter;

^ ParseQueryAdapter是我们使用的parseObject(S)加载到一个ListView。声明ParseQueryAdapter后,你会想使一个ParseQueryAdapter.QueryFactory并将其应用到您的适配器。

  ParseQueryAdapter.QueryFactory<&的parseObject GT;厂;
厂=新ParseQueryAdapter.QueryFactory<&的parseObject GT;(){
            @覆盖
            公共ParseQuery<&的parseObject GT;创建() {
                ParseQuery查询=新ParseQuery(的parseObject);
                返回查询;
            }
        };
mainAdapter =新ParseQueryAdapter<&的parseObject GT;(这一点,工厂){
    @覆盖
    公共查看getItemView(最终的parseObject对象,视图V的ViewGroup以及母公司){
        如果(V == NULL){
            V = View.inflate(的getContext(),R.layout.your_list_view,NULL);
        }
        返回伏;
    }
};
mainAdapter.setPaginationEnabled(真);
mainAdapter.setTextKey(称号);
mainAdapter.setImageKey(图像);
mainAdapter.loadObjects();

如果你想要做更多的东西这样你可能会得到一定的成功。如果你看一下getItemView()方法,你可以看到我引用的XML文件的列表视图。

I want to list my ArrayList items to the simple list view. I tried to convert ArrayList(iller) to StringArray(mListe) but I couldn't. It gives me always NullPointerException. What is my mistakes and how can I solve this problem Thank you for any help.

This is my List Fragment;

public class ListeFragment extends ListFragment {

public View mView;
public String[] mListe;
public ListView listView;
public ArrayList<String> iller = new ArrayList<String>();


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

    mView = inflater.inflate(R.layout.fragment_liste, container, false);

    return mView;
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);

    getOnlineDataFromParse();


}

private void setIlcelerArray(){

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(getListView().getContext(), R.layout.ilce_view, mListe);
    setListAdapter(adapter);

    listView = (ListView) mView.findViewById(android.R.id.list);
    listView.setAdapter(adapter);
}

@Override
public void onResume() {
    super.onResume();

    googleAnalyticsSendScreen();

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {


            Intent intent = new Intent(getActivity(), ListVets.class);

            intent.putExtra("position", position);
            intent.putExtra("ilce", mListe[position]);
            startActivity(intent);


            //GOOGLE ANALYTICS EVENT SENDER
            String secilenilce = "Seçilen ilçe " + mListe[position];

            Tracker t = ((GlobalState) getActivity().getApplication()).getTracker(
                    GlobalState.TrackerName.APP_TRACKER);

            t.send(new HitBuilders.EventBuilder()
                    .setCategory("İlçeler Listesi")
                    .setAction("Seçilen ilçe")
                    .setLabel(secilenilce)
                    .build());
        }
    });
}

private void getOnlineDataFromParse(){

    ParseQuery<ParseObject> query = ParseQuery.getQuery("Veterinerler");
    query.setLimit(1000);
    query.findInBackground(new FindCallback<ParseObject>() {

        public void done(List<ParseObject> vetList, ParseException e) {
            if (e == null) {

                for(int i=0; i< vetList.size(); i++){

                    iller.add(vetList.get(i).getString("il"));

                }

                mListe = iller.toArray(new String[iller.size()]);

                setIlcelerArray();

            } else {

                AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                builder.setTitle(getString(R.string.parse_online_query_error_title));
                builder.setMessage(getString(R.string.parse_online_query_error_message));
                builder.setPositiveButton(android.R.string.ok, null);
                AlertDialog dialog = builder.create();
                dialog.show();
            }

        }

    });

}

There is the logCat ;

E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
        at com.esmobileinc.vetmapp.u.k(Unknown Source)
        at android.support.v4.app.Fragment.C(Unknown Source)
        at android.support.v4.app.v.a(Unknown Source)
        at android.support.v4.app.v.a(Unknown Source)
        at android.support.v4.app.v.d(Unknown Source)
        at android.support.v4.app.v.e(Unknown Source)
        at android.support.v4.app.v.b(Unknown Source)
        at android.support.v4.app.aa.b(Unknown Source)
        at android.support.v4.view.ViewPager.a(Unknown Source)
        at android.support.v4.view.ViewPager.c(Unknown Source)
        at android.support.v4.view.ViewPager.onMeasure(Unknown Source)
        at android.view.View.measure(View.java:15518)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at android.view.View.measure(View.java:15518)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
        at android.support.v7.internal.widget.ActionBarOverlayLayout.onMeasure(Unknown Source)
        at android.view.View.measure(View.java:15518)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at android.view.View.measure(View.java:15518)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
        at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
        at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
        at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
        at android.view.View.measure(View.java:15518)
        at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825)
        at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
        at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2176)
        at android.view.View.measure(View.java:15518)
        at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874)
        at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1089)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
        at android.view.Choreographer.doCallbacks(Choreographer.java:562)
        at android.view.Choreographer.doFrame(Choreographer.java:532)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
        at android.os.Handler.handleCallback(Handler.java:725)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5041)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
        at dalvik.system.NativeStart.main(Native Method)

Thank you !

解决方案

ParseQueryAdapter<ParseObject> mainAdapter;

^ParseQueryAdapter is what we use to load ParseObject(s) into a ListView. After declaring a ParseQueryAdapter you will want to make a ParseQueryAdapter.QueryFactory and apply it to your adapter.

ParseQueryAdapter.QueryFactory<ParseObject> factory;
factory = new ParseQueryAdapter.QueryFactory<ParseObject>() {
            @Override
            public ParseQuery<ParseObject> create() {
                ParseQuery query = new ParseQuery("ParseObject");
                return query;
            }
        };
mainAdapter = new ParseQueryAdapter<ParseObject>(this, factory) {
    @Override
    public View getItemView(final ParseObject object, View v, ViewGroup parent) {
        if (v == null) {
            v = View.inflate(getContext(), R.layout.your_list_view, null);
        }
        return v;
    }
};
mainAdapter.setPaginationEnabled(true);
mainAdapter.setTextKey("title");
mainAdapter.setImageKey("Image");
mainAdapter.loadObjects();

If you want to do something more like this you may get some success. If you look at the getItemView() method you can see where I reference the xml listview file.

这篇关于清单ParseData结果simpleListView在Android的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆