小编Vee*_*ath的帖子

ListAdapter不会更新reyclerview中的项目

我正在使用新的支持库ListAdapter.这是我的适配器代码

class ArtistsAdapter : ListAdapter<Artist, ArtistsAdapter.ViewHolder>(ArtistsDiff()) {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        return ViewHolder(parent.inflate(R.layout.item_artist))
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.bind(getItem(position))
    }

    class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
        fun bind(artist: Artist) {
            itemView.artistDetails.text = artist.artistAlbums
                    .plus(" Albums")
                    .plus(" \u2022 ")
                    .plus(artist.artistTracks)
                    .plus(" Tracks")
            itemView.artistName.text = artist.artistCover
            itemView.artistCoverImage.loadURL(artist.artistCover)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在更新适配器

musicViewModel.getAllArtists().observe(this, Observer {
            it?.let {
                artistAdapter.submitList(it)
            }
        })
Run Code Online (Sandbox Code Playgroud)

我的差异类

class ArtistsDiff : DiffUtil.ItemCallback<Artist>() {
    override fun areItemsTheSame(oldItem: Artist?, newItem: Artist?): Boolean { …
Run Code Online (Sandbox Code Playgroud)

android listadapter kotlin

46
推荐指数
10
解决办法
9914
查看次数

Firebase:激活只读和非实时模式以提高浏览器性能

激活只读和非实时模式以提高浏览器性能

消息在我的项目中弹出,我也无法删除节点

我也读了这篇https://groups.google.com/forum/#!topic/firebase-talk/qLxZCI8i47s

哪个州:

如果您的Firebase中有很多节点(比如数千个),我们需要为每个节点创建一个新元素,现代浏览器只能限制您可以添加到页面的DOM元素数量

它说:

要解决此问题,请不要将Firebase信息中心加载到Firebase的根目录,而是将其加载到层次结构的较低层

我不知道这意味着什么

如何返回我的实时仪表板?

firebase firebase-realtime-database firebase-console

25
推荐指数
4
解决办法
2万
查看次数

在Android 7(One Plus 3T)上杀死应用程序时,警报管理器未触发

自介绍打盹模式和App StandBy管理警报以来已经改变.我面临的问题是我的报警管理器在KitKat,Lolipop和Marshmellow设备上正常启动但在API 23之上它不会触发,除非应用程序处于前台或后台.但是如果应用程序被杀死,警报就会停止.

在我的Android 7上查看Google Keep应用程序,结果证明它也是如此.

但无论应用程序是否被杀,Google日历都会触发.

完成一些阅读并发现setExactAndAllowWhileIdle警报管理器上的方法可确保打破打盹模式并触发警报.

但它不起作用,这里有什么我想念的吗?

这是我的代码:

Intent alertIntent = new Intent(this, NotificationPublisher.class);

    alertIntent.putExtra("Hello", "Meal Time");

    AlarmManager alarmManager = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);

    int id = (int) System.currentTimeMillis();

    if (Build.VERSION.SDK_INT < 23) {
        if (Build.VERSION.SDK_INT >= 19) {
            alarmManager.setExact(AlarmManager.RTC_WAKEUP, delay, PendingIntent.getBroadcast(this, id, alertIntent, PendingIntent.FLAG_UPDATE_CURRENT));
        } else {
            alarmManager.set(AlarmManager.RTC_WAKEUP, delay, PendingIntent.getBroadcast(this, id, alertIntent, PendingIntent.FLAG_UPDATE_CURRENT));
        }
    } else {
        alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, delay, PendingIntent.getBroadcast(this, id, alertIntent, PendingIntent.FLAG_UPDATE_CURRENT));
    }
Run Code Online (Sandbox Code Playgroud)

广播接收器:

public class NotificationPublisher extends WakefulBroadcastReceiver {


@Override
public void onReceive(Context context, Intent …
Run Code Online (Sandbox Code Playgroud)

android alarmmanager

10
推荐指数
1
解决办法
1788
查看次数

棒棒糖设备的共享元素转换崩溃

我正在使用ActivityOptions.makeSceneTransitionAnimationAPI来处理共享转换.

我面临的问题是它适用于Marshmellow设备但在Lolipop设备上崩溃.

这是崩溃日志:

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.view.ViewGroup.getScrollX()' on a null object reference
   at android.app.ActivityTransitionCoordinator.setSharedElementState(ActivityTransitionCoordinator.java:435)
   at android.app.ActivityTransitionCoordinator.setSharedElementState(ActivityTransitionCoordinator.java:473)
   at android.app.EnterTransitionCoordinator.startSharedElementTransition(EnterTransitionCoordinator.java:332)
   at android.app.EnterTransitionCoordinator.access$200(EnterTransitionCoordinator.java:42)
   at android.app.EnterTransitionCoordinator$5$1.run(EnterTransitionCoordinator.java:389)
   at android.app.ActivityTransitionCoordinator.startTransition(ActivityTransitionCoordinator.java:698)
   at android.app.EnterTransitionCoordinator$5.onPreDraw(EnterTransitionCoordinator.java:386)
   at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:847)
   at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1990)
   at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1088)
   at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5825)
   at android.view.Choreographer$CallbackRecord.run(Choreographer.java:769)
   at android.view.Choreographer.doCallbacks(Choreographer.java:582)
   at android.view.Choreographer.doFrame(Choreographer.java:552)
   at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:755)
   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:5237)
   at java.lang.reflect.Method.invoke(Method.java)
   at java.lang.reflect.Method.invoke(Method.java:372)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)
Run Code Online (Sandbox Code Playgroud)

这是我的代码

 @Override
public void getComments(String postId, String authorName, String message, String imageURL, String likesCount, …
Run Code Online (Sandbox Code Playgroud)

xml android material-design

6
推荐指数
1
解决办法
708
查看次数

RealmResults未被调用的Realm Change Listener

我正在使用Realm 3.0.0

我从Realm中获取一些对象并尝试添加onChangeListener,但是当对象被更改时它不会被触发

这是代码,我在这里遗漏了什么?

 RealmResults<Record> realmResults = RealmManager.recordsDao().loadRecords();
    realmResults.addChangeListener(new RealmChangeListener<RealmResults<Record>>() {
        @Override
        public void onChange(RealmResults<Record> element) {
            for (int i = 0; i < recordList.size(); i++) {
                if (collection.get(i).getId().equals(recordList.get(i).getId())) {
                    recordList.set(i, collection.get(i));
                    adapter.notifyItemChanged(i);
                }

            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

同样根据文档,它提到了调用,invalidateView(); 但即使这并不反映新数据

对象的更改是在适配器中进行的

public class RecordsAdapter extends RecyclerView.Adapter<RecordsAdapter.ViewHolder> {

private ArrayList<Record> recordList;
private Context context;
private Realm realm = Realm.getDefaultInstance();

public RecordsAdapter(ArrayList<Record> recordList, Context context) {
    this.recordList = recordList;
    this.context = context;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View …
Run Code Online (Sandbox Code Playgroud)

android realm

4
推荐指数
1
解决办法
2117
查看次数

使用RecyclerView使目录像布局

这就是我要实现的

在此处输入图片说明

我尝试过的是,在单击每个项目时将布局动态添加到recycleView。但是我认为这不是一种有效的方法。

请注意,这是一个类似于结构的目录,其中每个文件夹可以具有子文件夹,每个子文件夹可以具有子文件夹,依此类推。

请提出其他选择。

java android android-layout android-view android-recyclerview

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