Android 按意图滚动列表视图
我遇到了一个复杂的问题,涉及到Android上的ListView和一些意图: 我有一个Android 按意图滚动列表视图,android,listview,android-intent,Android,Listview,Android Intent,我遇到了一个复杂的问题,涉及到Android上的ListView和一些意图: 我有一个列表活动,其中包含许多项。从另一个活动中,我们将其称为CallingActivity,我想启动此ListActivity,并滚动到特定项目。在列表活动中可以启动一些其他活动,让我们调用它们另一个活动 我当前的实现是存储ListActivity在intent中应该调用的项,然后在onStart()方法中使用以下代码 if (getIntent().getExtras() != null && ge
列表活动
,其中包含许多项。从另一个活动中,我们将其称为CallingActivity
,我想启动此ListActivity
,并滚动到特定项目。在列表活动中
可以启动一些其他活动,让我们调用它们另一个活动
我当前的实现是存储ListActivity在intent中应该调用的项,然后在onStart()
方法中使用以下代码
if (getIntent().getExtras() != null && getIntent().getExtras().containsKey(EXTRA_EVENTNR)) {
int p = getIntent().getExtras().getInt(EXTRA_EVENTNR);
getListView().clearFocus();
getListView().post(new Runnable() {
@Override
public void run() {
getListView().setSelection(p);
}
});
}
此解决方案有一个巨大的缺点:
假设以下调用序列:
CallingActivity
启动ListActivity
,意图[EVENTNR=123]
ListActivity
接收意图并滚动到正确位置ListActivity
ListActivity
的onStart
中再次传递ListActivity
再次滚动到相同的位置(与第2部分相同)是否有另一种只应用一次的滚动信息传递解决方案?我遗漏了什么吗?如果您执行
getIntent().removeExtra()
删除额外数据会怎么样
另一方面,将信息放入Intent
中可能是一个不必要的复杂问题,因为您实际上并不需要意图。
它是否可以是一个普通的java对象,用API存储该信息以设置和重置它?感谢
removeExtra
提示。无论如何,您能解释一下设置和重置的API是什么意思吗?如何将值从CallingActivity
滚动到'ListActivity'的位置?哦,我只是认为引起问题的是意图,因为它总是存在。所以我只是想创建一个简单的Java类,比如ScrollInfo,使用方法set(int pos)和clear()并传递它,而不是Intent。但与removeExtra()相同…可以使用BroadcastReceivers: