我正在试图弄清楚如何实现无限滚动列表.它将显示日历和事件,它应该从现在开始或选定日期开始.它应该可以在过去和将来的两个方向上滚动.这里的 OnScrollListener解决方案似乎工作得很好,如果我只需要去未来(索引只是变得更大).但我不明白我将如何回到过去.
这个解决方案似乎对我的情况非常浪费.getView被调用了数千次.也许ListView不是解决方案,我将不得不使用较低级别的代码.有任何想法吗?
编辑:getView被调用了数千次并不是后一种解决方案的错.但是,它仍会被调用太多次并且值不正确.如果我设置这样的选择:
myList.setSelection(Integer.MAX_VALUE的/ 2)
我得到索引从零开始的getView调用.例如,我得到这样的getView调用:
getView pos 0
...
getView pos 26
Run Code Online (Sandbox Code Playgroud)
然后
getView pos 1073741823
...
getView pos 1073741847
Run Code Online (Sandbox Code Playgroud)
哪些是正确的.然后:
getView pos 0
...
getView pos 26
Run Code Online (Sandbox Code Playgroud)
再次
这一切都发生在我滚动或触摸屏幕之前.似乎没有多大意义.
美好的一天,我做了一个带有文本,图像和评级栏的列表视图.我通过使用ksoap已经完成的工具得到这些信息,它就像魅力一样!
现在有一个问题,正如我前面提到的,我确实在listview中有一个图像,如果我没有删除照片,它会变成这样laggy/slow response但是在我删除图像后,它将再次变得光滑只是与textview和评级栏.
如果我想要包含图像,如何解决滞后问题.请告诉我你是否需要一个例子,所以我会发布android .apk.我希望有一个解决方案.低于我在listview上的图像代码:
String s = strTitle[position];
System.out.println(s);
String image_URL = imageURL[position];
BitmapFactory.Options bmOptions;
bmOptions = new BitmapFactory.Options();
bmOptions.inSampleSize = 1;
Bitmap bm = LoadImage(image_URL, bmOptions);
ivLogo.setImageBitmap(bm);
return rowView;
private Bitmap LoadImage(String URL, BitmapFactory.Options options)
{
Bitmap bitmap = null;
InputStream in = null;
try {
in = OpenHttpConnection(URL);
bitmap = BitmapFactory.decodeStream(in, null, options);
in.close();
} catch (IOException e1) { }
return bitmap;
}
private InputStream OpenHttpConnection(String strURL) throws IOException{ …Run Code Online (Sandbox Code Playgroud) 我只是想知道如何加载Twitter和Facebook应用程序的数据..
就像当你到达页面末尾时,你仍然在与UI进行交互,它显示了正在加载的更多数据.这是如何以编程方式完成的.
更清楚的是,当您到达某个点时向下滚动新闻源时,它会显示一个圆圈,表示正在加载更多数据,然后当有更多新的Feed可用时,您也可以滚动浏览它...我希望我足够清楚..我只是想知道这种情况是如何实施的..有什么例子吗?
我使用a ContentProvider来查询数据库并返回一个Cursor用于CursorLoader:
ItemsActivity:
public class ItemsActivity extends SherlockActivity implements LoaderCallbacks<Cursor> {
@Override
public void onCreate(Bundle savedInstance) {
....
getSupportLoaderManager().initLoader(LOADER_ID, null, this);
...
}
@Override
public Loader<Cursor> onCreateLoader(int loaderId, Bundle bundle) {
return new CursorLoader(getApplicationContext(), itemsListUri, ...);
}
...
}
Run Code Online (Sandbox Code Playgroud)
ItemsContentProvider:
public Cursor query(Uri uri, String[] projection, String selection, ...) {
SqliteQueryBuilder builder = new SqliteQueryBuilder();
builder.setTables(ItemsTable.NAME);
return builder.query(db, projection, selection, ...);
}
Run Code Online (Sandbox Code Playgroud)
活动有一个ListView,我使用CursorAdapter(通过更新LoaderCallbacks)来表示光标内的数据.
这工作正常,直到我需要查找大型数据集中的项目(例如,超过30,000行).观察日志我发现查找超出了内存限制,并且从结果游标中删除了一些行.
我的问题:在使用这样的游标时,处理非常大的数据集的最佳方法是什么?
我目前的解决方案是将SQLite查询ContentProvider拆分为具有偏移和限制的查询序列,然后使用MergeCursor …