小编Pro*_*roz的帖子

无法使用 mkdirs() 创建目录 - android

我尝试创建一个目录并使用以下代码:

boolean success = true;
String rootDirectory = Environment.getExternalStorageDirectory().toString();
folder = new File(rootDirectory, "Directory");
if(!(folder.exists())) {
     success = folder.mkdirs();
} else {

}

if(success) {
   Toast.makeText(getActivity().getApplicationContext(), "DIR created", Toast.LENGTH_SHORT).show();     
} else {
     Toast.makeText(getActivity().getApplicationContext(), "DIR not created successfully", Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)

我还搜索了创建的文件夹,但没有。

授予权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)

我还尝试在运行时请求许可,似乎该应用程序已获得许可,因此不可能是问题。

几个月前,我创建了另一个应用程序并使用了相同的代码和相同的 Sdk 版本,但它仍然不适用于这个应用程序。我收到“未成功创建 DIR”,但不知道为什么,请帮我找出无法创建目录的原因。

android file mkdir mkdirs

2
推荐指数
1
解决办法
6633
查看次数

MapView内部自定义RecyclerViewAdapter

我正在尝试使用每个MapView内部实现包含CardViews的RecyclerView.问题是,在自定义适配器中初始化的MapView不会加载,除非您单击它.正如这里已经提到的:Android MapView不会加载,除非您触摸mapview, 您可以通过覆盖onResume()来解决问题.我试过以下方式:

@Override
    public void onResume() {
        if(LocationsAdapter.ViewHolder.mapView != null) {
            LocationsAdapter.ViewHolder.mapView.onResume();
        }

        super.onResume();
    }
Run Code Online (Sandbox Code Playgroud)

老实说,我根本不知道如何以任何其他方式覆盖onResume,如果我在这里打破了某些编程规则,请原谅我.我将mapView作为在LocationsAdapter中创建的ViewHolder中的公共静态.这似乎不起作用,地图仍然是空白.

Adapter内的ViewHolder实现了OnMapReadyCallback.

public static class ViewHolder extends RecyclerView.ViewHolder implements OnMapReadyCallback

...

 @Override
            public void onMapReady(GoogleMap googleMap) {
                this.googleMap = googleMap;
                Location location = locations.get(getAdapterPosition());
                this.googleMap.addMarker(new MarkerOptions().position(location.getLatlng()).title(location.getName()));
                this.googleMap.moveCamera(CameraUpdateFactory.newLatLng(location.getLatlng()));
                this.googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(location.getLatlng(), 7.0f));
            }
Run Code Online (Sandbox Code Playgroud)

调用ViewHolder时会调用这两个方法.

mapView.onCreate(null);
mapView.getMapAsync(this);
Run Code Online (Sandbox Code Playgroud)

另一篇提到这个问题的文章还没有答案:cardview里面的mapView没有加载地图.

我的目标是,无论片段当前处于什么生命周期,都要加载映射.我假设您不需要适配器,片段和XML来解决此问题.如果你这样做,请告诉我.

android android-mapview google-maps-android-api-2 android-recyclerview

-1
推荐指数
2
解决办法
2233
查看次数