当前位置: 首页 > 知识库问答 >
问题:

setAdapter使应用程序崩溃[重复]

宇文峰
2023-03-14

我尝试从firebase获取字符串到ListView,但当我添加行时

listViewPerifereies.set适配器;

应用程序崩溃了,然后就停止了。我确信ListView是正确的。xml(activity\u periferies\u list.xml)。我在另一个活动中使用了相同的代码,并且可以正常工作,但现在我创建的任何新活动中都没有使用相同的代码。

import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;

import java.util.ArrayList;


public class PerifereiesList extends AppCompatActivity {

DatabaseReference databasePaths;
private ListView listViewPerifereies;
private ArrayList<String> ArrayListPerifereies;
public ArrayAdapter<String> adapterPerifereies;
Paths info;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_perifereies_list);

    listViewPerifereies = (ListView) findViewById(R.id.epitelous);
    ArrayListPerifereies = new ArrayList<>();

    databasePaths = FirebaseDatabase.getInstance().getReference("Paths");

    databasePaths.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            ArrayListPerifereies.clear();

            for (DataSnapshot items: dataSnapshot.getChildren())
            {
                info = items.getValue(Paths.class);
                ArrayListPerifereies.add(info.perifereia);
            }


            adapterPerifereies = new ArrayAdapter<String>(PerifereiesList.this, android.R.layout.simple_list_item_1, ArrayListPerifereies);
            listViewPerifereies.setAdapter(adapterPerifereies);
            adapterPerifereies.notifyDataSetChanged();

        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}
}

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.example.spiros.mypath, PID: 7607
                  java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference
                      at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:409)
                      at android.widget.ArrayAdapter.getView(ArrayAdapter.java:371)
                      at android.widget.AbsListView.obtainView(AbsListView.java:2413)
                      at android.widget.ListView.makeAndAddView(ListView.java:1986)
                      at android.widget.ListView.fillDown(ListView.java:709)
                      at android.widget.ListView.fillFromTop(ListView.java:770)
                      at android.widget.ListView.layoutChildren(ListView.java:1721)
                      at android.widget.AbsListView.onLayout(AbsListView.java:2212)
                      at android.view.View.layout(View.java:17708)
                      at android.view.ViewGroup.layout(ViewGroup.java:5631)
                      at android.support.constraint.ConstraintLayout.onLayout(ConstraintLayout.java:1858)
                      at android.view.View.layout(View.java:17708)
                      at android.view.ViewGroup.layout(ViewGroup.java:5631)
                      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
                      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                      at android.view.View.layout(View.java:17708)
                      at android.view.ViewGroup.layout(ViewGroup.java:5631)
                      at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1766)
                      at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1610)
                      at android.widget.LinearLayout.onLayout(LinearLayout.java:1519)
                      at android.view.View.layout(View.java:17708)
                      at android.view.ViewGroup.layout(ViewGroup.java:5631)
                      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
                      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                      at android.view.View.layout(View.java:17708)
                      at android.view.ViewGroup.layout(ViewGroup.java:5631)
                      at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1766)
                      at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1610)
                      at android.widget.LinearLayout.onLayout(LinearLayout.java:1519)
                      at android.view.View.layout(View.java:17708)
                      at android.view.ViewGroup.layout(ViewGroup.java:5631)
                      at android.widget.FrameLayout.layoutChildren(FrameLayout.java:325)
                      at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
                      at com.android.internal.policy.DecorView.onLayout(DecorView.java:774)
                      at android.view.View.layout(View.java:17708)
                      at android.view.ViewGroup.layout(ViewGroup.java:5631)
                      at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2519)
                      at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2234)
                      at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1372)
                      at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6774)
                      at android.view.Choreographer$CallbackRecord.run(Choreographer.java:926)
                      at android.view.Choreographer.doCallbacks(Choreographer.java:735)
                      at android.view.Choreographer.doFrame(Choreographer.java:667)
                      at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:912)
                      at android.os.Handler.handleCallback(Handler.java:761)
                      at android.os.Handler.dispatchMessage(Handler.java:98)
                      at android.os.Looper.loop(Looper.java:156)
                      at android.app.ActivityThread.main(ActivityThread.java:6595)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
I/Process: Sending signal. PID: 7607 SIG: 9
Application terminated.

共有1个答案

范高刚
2023-03-14

请确保首先配置了适配器,然后确保执行了以下操作:在onCreate()中;

      Adapter adapter = new Adapter (Context)

确保你只传递了上下文,然后你可以膨胀你的菜单

 类似资料:
  • 我正在尝试将图像添加到我新创建的应用程序中。但是,当我运行我的应用程序时,它会崩溃。我没有在我的应用程序中编写任何代码,因此我提供了XML代码和错误日志。我在以前的应用程序中使用了ImageViews。没有错误。我已经优化了我的图像,但它仍然给我错误。 图像详细信息 错误日志: 09-08 16:03:02.266 15137-15137/ooper.loopE/AndroidRuntime: F

  • 当我运行应用程序并转到用户的活动时,应用程序崩溃,显示mUsersList。setHasFixedSize(真);正在使应用程序崩溃。 这是消息“由以下原因引起:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'void androidx.recyclerview.widget.recyclerview.setHasFixedSize(布尔)'”

  • 问题内容: 当我尝试访问Flask应用程序时,该应用程序崩溃了。 这类似于this或this。但是,我的设置似乎正确。 flask.cli.NoAppException:提供的文件/路径(服务器)似乎不存在。请确认路径正确。如果应用不在PYTHONPATH上,请确保扩展名为.py 我的环境变量设置正确。 我的服务器文件是y目录中没有任何文件。 我不记得对代码进行任何特殊更改。该错误可能来自哪里?

  • 在以前的代码上,谁医生帮了我 现在,android应用程序在我的手机上运行时崩溃了,这是错误日志 第一个问题是在我用相机扫描二维码后,它不能显示在二维码的结果进入 第二个问题是,我从存储器中选择了一个QRcode图像,然后点击确认,它崩溃了 下面是我认为的问题 类型不匹配:推断的类型是Uri?但乌里是意料之中的 冗余SAM构造函数 'onRequestPermissionsResult(Int,数

  • 问题内容: 我的应用程序中的函数出现崩溃(来自Crashlytics,无法在本地重现): 由于我自己无法重现此错误,并且无法使用CoordinatorLayouts进行6个活动,因此如何进行调试? 编辑 :看起来它将在下一个支持库版本中修复 问题答案: 我遇到了类似的问题,因此降级到较旧的Android支持库版本(v24.1.1)对我来说很有用。库中似乎有问题,您可以在此处查看 Android I

  • 问题内容: 仅供参考:我是Swift的新手,所以这可能是一个非常简单的问题,但我 无法弄清楚。 我一直在关注 使用Xcode 8 beta和Swift 3 的《开始开发iOS应用程序 (Swift) 教程》。 我将Tap Gesture Recognizer附加到了Image View,然后 在ViewController.swift中添加了此操作: 在图像 视图上轻按以调用selectImage