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

E/回收人员视图:没有连接适配器;跳过布局-Android 9.0 Pie的问题

柯鸿云
2023-03-14

我正在为Android编写一些应用程序,在构建项目的过程中,我出现了一个错误:E/RecyclerView:没有连接适配器;跳过布局。应用程序可以工作,但当我想启动这个特定片段(映射片段)时,它会崩溃或再次转到主活动。然而,问题只在于Android 9.0 Pie,而Android 8.0 Oreo没有问题

我尝试了很多东西,但我找不到根本原因,因为在我想要启动的片段上没有RecycleView,因此我想它不需要适配器。

我想开始的片段:

公共类MapsActive扩展FragmentActive实现OnMapReadyCallback{

私有GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_maps);
    // Obtain the SupportMapFragment and get notified when the map is ready to be used.
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager()
            .findFragmentById(R.id.map);
    mapFragment.getMapAsync(this);
}

@Override
public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;
    GPSTracker tracker = new GPSTracker(MapsActivity.this);
    double lat=tracker.getLatitude();
    double lng=tracker.getLongitude();

    // Add a marker for current location and move the camera
    LatLng currentLocation = new LatLng(lat, lng);
    mMap.addMarker(new MarkerOptions().position(currentLocation).title("Current Location Marker"));
    mMap.moveCamera(CameraUpdateFactory.newLatLng(currentLocation));
  }
}

这是我想从中转到这个地图片段的活动:

public class DescriptionActivity extends AppCompatActivity {

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_description);
    Bundle bundle = getIntent().getExtras();
    int id = bundle.getInt("ID");
    String detailedDescription = bundle.getString("TITLE");
    String imageUrl = bundle.getString("IMAGE_URL");
    Button navigate = (Button) findViewById(R.id.navigate);
    TextView idTxt = (TextView) findViewById(R.id.detailsText);
    TextView detailedDescTxt = (TextView) findViewById(R.id.detailedDescription);
    ImageView dishImage = (ImageView) findViewById(R.id.dishImage);
    idTxt.setText("ID " + String.valueOf(id));
    detailedDescTxt.setText(detailedDescription);
    Picasso.get().load(imageUrl).into(dishImage);

    navigate.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(v.getContext(), MapsActivity.class);
            v.getContext().startActivity(intent);
        }
    });
  }
}

主活动类(带有“设置适配器”和“设置layoutManager”)

公共类MainActivity扩展了AppCompatActivity{

private RecyclerListAdapter adapter;
private RecyclerView recyclerView;
ProgressDialog progressDialog;

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

    progressDialog = new ProgressDialog(MainActivity.this);
    progressDialog.setMessage("Loading....");
    progressDialog.show();

    /*Create handle for the RetrofitInstance interface*/
    GetDataService service = RetrofitClientInstance.getRetrofitInstance().create(GetDataService.class);
    Call<List<RetroList>> call = service.getAllPhotos();
    call.enqueue(new Callback<List<RetroList>>() {
        @Override
        public void onResponse(Call<List<RetroList>> call, Response<List<RetroList>> response) {
            progressDialog.dismiss();
            generateDataList(response.body());
        }

        @Override
        public void onFailure(Call<List<RetroList>> call, Throwable t) {
            progressDialog.dismiss();
            Toast.makeText(MainActivity.this, "Something went wrong...Please try later!", Toast.LENGTH_SHORT).show();
        }
    });
}

/*Method to generate List of data using RecyclerView with custom adapter*/
private void generateDataList(List<RetroList> photoList) {
    recyclerView = findViewById(R.id.customRecyclerView);
    adapter = new RecyclerListAdapter(this, photoList);
    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);
    recyclerView.setLayoutManager(layoutManager);
    recyclerView.setAdapter(adapter);
}

}

崩溃日志在这里:http://pasted.co/65607023

共有1个答案

毋修为
2023-03-14

移动此行:

recyclerView = findViewById(R.id.customRecyclerView);

内部onCraete()方法

发生此错误的原因是,每次调用generateDataList()时,都会定义RecyclerView

 类似资料:
  • 图像不显示。在一个SO例子中说要检查适配器中的计数,但我认为它是正确的。我在logcat中得到这个错误 这是代码主活动 这是我的适配器。

  • 我根据类似问题的答案修改了代码,但没有一个有效。我正在使用TabFragments和RecyclerViews。控制台显示错误“E/RecyclerView:No adapter attached;kipping layout”四次。 (当修改它也给了我错误java.lang.NullPointerException:试图调用虚方法'voidandroid.support.v7.widget.Re

  • 我有一些关于适配器的问题,这是我的方法: 另一个Java:1。名单。Java }

  • 我有“E/RecyclerView:没有连接适配器;跳过布局”错误消息。我在片段中有recycleView,所以我一定是在fragment1.java上做错了什么。 这是代码。如您所见,我在代码上设置了适配器,但我收到此错误。任何帮助将不胜感激。谢谢。 公共类Fragment1扩展片段{ } 公共类圣经适配器扩展回收器View.Adapter { }

  • 我想从火力点实时数据库显示图片。(带有加密图像(字符串))类似加密图像是“照片” 函数loadPhoto() 问题出在哪里?我连接adapter和recyclerview,并设置GridManager。

  • 我收到以下错误:“RecyclerView:未连接适配器;跳过布局”,但我已连接适配器...我尝试了许多不同的方法,但我无法解决错误。 我正在使用Volley库获取数据。当我启动活动时,只有进度条可见,直到结束,我收到上面的Logcat消息。我在中添加了带有适配器的。你能帮我吗? 这是我的代码: 主活动 地震适配器 MainActivity.xml 地震法。xml