我想知道<code>BaseAdapter的时间。notifyDataSetChanged()完成,然后执行以下操作。我的代码:
BaseAdapter.notifyDataSetChanged();
mScroller.startScroll(oldX, 0, dx, 0);
mScroller
在 notifyDataSetChanged()
完成之前滚动。我希望 mScroller
在 notifyDataSetChanged()
完成后滚动到 oldX
。
请帮帮我,谢谢。
这很晚了,但可能对以后的任何人都有帮助。
如果您熟悉RxJava2
和Completable
,您可以检测notifyDataSetChanged()
或UI上的任何操作是否已完成。
Completable.fromAction {
// notifyDataSetChanged() here
}
.subscribe(object : DisposableCompletableObserver() {
override fun onComplete() {
recyclerView.scrollTo(position)
}
override fun onError(e: Throwable) {
// handle error here
}
})
我有同样的确切问题,尝试一下它对我来说很完美。您正在重写 notifyDataSetChanged() 方法。您可以在适配器类中执行此操作。只需复制我发布的代码,并将我设置Selection()的行替换为您需要完成的任何操作。
@Override
public void notifyDataSetChanged()
{
super.notifyDataSetChanged();
parentGlobal.setSelection(this.getCount() - 1); //This is how we start Activity fully scrolled to bottom
}
话虽如此,如果您想知道,“parentGlobal”是我在活动中设置适配器的ListView。在适配器的构造函数中,我传入ListView,然后将其设为“全局”。如果“全局”不是Java术语,我很抱歉,我来自C世界。
//进行活动:
lv_main = (ListView) findViewById(R.id.listView_conversation);
adapter_main = new Adapter_Conversation(ConversationActivity.this, R.layout.layout_list_conversation,
list_main_UI, lv_main, main_list_item_margin_px);
lv_main.setAdapter(adapter_main);
//进入适配器
public Adapter_Conversation(AppCompatActivity activity, @LayoutRes int resource,
ArrayList<Adapter_GetSet_Conversation> list_conversation, ListView lv_main,
int item_margin_px)
与扩展不同,< code>BaseAdapter支持注册一个< code>DataSetObserver,您可以在其中侦听< code>onChanged事件。
(通知)DataSetChanged
方法将导致触发此事件。
adapter.registerDataSetObserver(new DataSetObserver() {
@Override
public void onChanged() {
// ...
}
});
...
adapter.notifyDataSetChanged();
问题内容: 我正在努力使应用程序更具实质性,而我仅停留在如何实现一些共享元素转换上。我有一个活动A,该活动A开始另一个B,然后调用finish()以便将其从后堆栈中删除。就我而言,我想在两个活动之间共享一个元素,但是一旦将其从A传递到B,A就不再重要了。如果在startActivity(ctx,intent,bundle)之后不调用finish(),则退出/输入动画效果很好。但是,如果我确实打完,
问题内容: 我目前正在编写一些Android单元测试,虽然我已经按照自己想要的方式完成了大多数工作,但有一件事让我有些困惑。 我的测试活动中包含以下代码: 我试图弄清楚如何使用Instrumentation(或其他工具)来读取活动的结果,或者在活动完成后获得意图。有人可以帮忙吗? 问题答案: 您可以使用反射并直接从活动中获取值。
问题内容: 在任何地方都找不到可靠的答案。我有一个方法,其中调用finish(),然后再调用onPause()。 是否一定要在调用finish()之后调用onPause()? 问题答案: Android将一般称之为如果你打电话你活动的整个生命周期期间的某个点,除非你叫你的。 运行,并观察您的日志将只包含“ onDestroy”。几乎在其他任何地方调用,您都会看到onPause()被调用。
我使用Inno Setup 6. x的目标是在代码中自定义文本,即Pascal Script。我使用Pascal Script的原因是我只想在为真时自定义/更改标签。我该怎么做? 以下两种方法不起作用: > 使用脚本常量: 这显示的是“{code:GetFinishedLabel}”,而不是“BLA”。 在< code>InitializeWizard中自定义向导。 完整(失败)示例: 仍然显示中
我正试图从服务器获取一些数据。用户单击search,另一个activity由startActivityForResult()启动。当用户单击数据时,数据应该放在intent中,setResult()用该intent完成,并调用finish()。现在我已经尝试了debugg,但是当调用finish()时,activity不会返回到调用这个activity的那个。相反,应用程序关闭了。 这是代码; 上
根据Android文档,finish()的功能与“后退”按钮的功能完全相同。基本上,当我调用finish()时,会调用onStop()。 我试图重写onStateSaveInstance()以保存当前状态,但从未调用它。但是,如果通过创建新的Intent并使用startActivity()转到上一个活动,则会调用onStateSaveInstance()方法。这有什么原因吗?
我正在使用下面的代码将postingdata添加到firebase中。问题是,当我在onComplete中注释finish方法时,我的所有数据都正确写入firebase数据库。但是,当我取消对finish方法的注释时,大多数数据都不是用datbase编写的。我想用finish方法写入完整数据。
当我的应用程序运行时,推送通知通过ReceivedRemoteNotification方法按预期工作。但是,当我在应用程序未运行时向应用程序发送推送通知时,我希望收到的推送通知会启动应用程序并调用FinishedLaunching,但我根本看不到这一点。你知道我遗漏了什么吗? 问题必须出现在以下三个地方之一:苹果开发者证书端、应用程序代码端或plist文件。由于推送通知在应用程序运行时工作,因此证