相关疑难解决方法(0)

POJO与Android中的游标

我通常倾向于使用POJO定义我的应用程序的模型层,例如文章,评论等.

我准备在我的一个ListViews的适配器中实现AlphabetIndexer.现在这个适配器接受一个文章集合,我通常从我的包装器中获取SQLiteDatabase.

AlphabetIndexer构造函数的签名如下:

public AlphabetIndexer (Cursor cursor, int sortedColumnIndex, CharSequence alphabet)
Run Code Online (Sandbox Code Playgroud)

由于这不接受Collection或类似的东西,只是一个Cursor,它让我想知道:也许我不应该为我的模型创建对象,只是使用从数据库返回的Cursors?

所以问题是,我猜:我应该怎么做,用POJO的集合表示数据,或者只是在我的应用程序中使用游标?

有什么输入?

android cursor pojo

33
推荐指数
3
解决办法
7445
查看次数

滚动AlphabetIndexer时,快速滚动缩略图消失

我有一个ListViewfastScrollAlwaysVisiblefastScrollEnabled均设置为true.实现SectionIndexer到我AdapterAlphabetIndexer我之后,fast scroll thumb当我滚动时,我的意志消失,然后在我到达列表的顶部或底部时重新出现.对于为什么会这样,我很无能为力.我之前没有经历过.

以下所有内容都有效AlphabetIndexer.我的问题是为什么我的快速滚动拇指在我滚动时消失了,我怎么能阻止它消失?

无论是否fast scroll始终可见无所谓.每当fast scroll可见时,fast scroll thumb它就不存在,它就会消失,这就是我的问题.此外,当我删除像我打算AlphabetIndexerfast scroll thumb作品.一切都成功地运作Activity,但当我加载我ListViewFragment东西最终像我解释.

这是我Adapter的意思ListView:

private class AlbumsAdapter extends SimpleCursorAdapter implements
        SectionIndexer {

private AlphabetIndexer mIndexer;

// I have to override this because I'm using a `LoaderManager`
@Override
    public Cursor swapCursor(Cursor cursor) { …
Run Code Online (Sandbox Code Playgroud)

java android android-listview

32
推荐指数
2
解决办法
4103
查看次数

重新索引/刷新SectionIndexer

将新项目添加到ListView后,有没有办法重新索引SectionIndexer?

我找到了这个解决方案,但是在刷新SectionIndexer之后,叠加层位于左上角.

有人有主意吗?

android listview

15
推荐指数
1
解决办法
3877
查看次数

在ListView中创建简单的字母滚动?

我想在最新的音乐应用程序中模拟功能,即弹出的漂亮的小光标,允许人们快速滚动到他们正在寻找的艺术家/专辑/曲目:

定期滚动

有没有一种方法可以ListView在Android SDK中启用这样的功能?

android listview android-layout

15
推荐指数
1
解决办法
3万
查看次数

Android:如何使用SectionIndexer

我试图找到一种方法来使用SectionIndexer,而不是AlphabetIndexer.我感兴趣的是在节标题上使用字符串数组的元素而不是字母表.我无法使用节索引器找到任何示例代码.

以下是一个示例代码AlphabetIndexer:

private AlphabetIndexer indexer;
indexer = new AlphabetIndexer(c, c.getColumnIndexOrThrow(
   DbHelper.COUNTRIES_NAME),"ABCDEFGHIJKLMNOPQRSTUVWXYZ");
Run Code Online (Sandbox Code Playgroud)

是否可以通过stringArray代替"ABCDEFGHIJKLMNOPQRSTUVWXYZ"来AlphabetIndexer代替"A","B",......"Z"作为标题有"书","食物",......头?

如果不是最好的方法是什么?对SectionIndexer代替使用的示例代码的任何引用AlphabetIndexer也会有所帮助.

谢谢您的帮助.TJ

android listview indexer header

11
推荐指数
1
解决办法
1万
查看次数

带自定义适配器的AlphabetIndexer

有人可以告诉我如何使用AlphabetIndexer自定义适配器使用getView?我使用标准适配器,但不知道如何使用自定义适配器实现它.

谢谢

android adapter

9
推荐指数
2
解决办法
9436
查看次数

使用Cursor和ListView适配器获取大量数据

我正在使用自定义CursorAdapter从SQLite数据库中获取数据并在列表视图中显示它.该数据库包含2列,大约8.000行.所以我正在寻找一种方法来查询和尽快显示所有数据.我用asyncTask完成了这个是代码:

private class PrepareAdapter extends AsyncTask<Void,Void,CustomCursorAdapter > {

 @Override
 protected void onPreExecute() {
     dialog.setMessage("Wait");
     dialog.setIndeterminate(true);
     dialog.setCancelable(false);
     dialog.show();


     Log.e("TAG","Posle nov mAdapter");
 }

 @Override
 protected CustomCursorAdapter doInBackground(Void... unused) {

   Cursor cursor =  myDbNamesHelper.getCursorQueryWithAllTheData();
   mAdapter.changeCursor(cursor);
   startManagingCursor(cursor);
   Log.e("TIME","posle start managing Cursor" + String.valueOf(SystemClock.elapsedRealtime()-testTime)+ " ms");
     testTime=SystemClock.elapsedRealtime();

     mAdapter.initIndexer(cursor);
     return mAdapter;
 }

 protected void onPostExecute(CustomCursorAdapter result) {

     TabFirstView.this.getListView().setAdapter(result);
     Log.e("TIME","posle adapterSet" + String.valueOf(SystemClock.elapsedRealtime()-testTime)+ " ms");
    testTime=SystemClock.elapsedRealtime();
     dialog.dismiss();
 }
Run Code Online (Sandbox Code Playgroud)

}

除了我需要将结果设置为适配器的部分之外,这个工作正常.我做了一些时间测试,需要大约700毫秒来使它超过startManagingCursor.问题是它需要大约7秒才能超过setAdapter(结果)并且它在UI线程中运行,因此它使我的应用程序无响应(进度对话框冻结,有时会执行应用程序).我如何减少这个时间?我可以使这也在后台运行或以任何方式提高响应能力?

TNX.

public class CustomCursorAdapter extends SimpleCursorAdapter implements OnClickListener,SectionIndexer,Filterable,
                                    android.widget.AdapterView.OnItemClickListener{

    private Context context;
    private int layout;
    private AlphabetIndexer …
Run Code Online (Sandbox Code Playgroud)

database android listview adapter

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

当用户拖动字母列表时,想要创建带有正面字符的快速滚动以在屏幕上显示

我已经像下面提到的链接一样做了图像的联系人列表,

http://deshmukhanil.blogspot.in/2012/02/wanted-to-create-fast-scrolling-with.html

但问题是,当我点击字母表列表时,租船人没有显示,只有当我滚动浏览"setFastScrollEnabled"但我不想在我的屏幕上显示"FastScroll"时才会显示:这里是显示内容的链接我想要,

http://deshmukhanil.blogspot.in/2012/02/wanted-to-create-fast-scrolling-with_09.html

android

7
推荐指数
1
解决办法
1354
查看次数

AlphabetIndexer setCursor不更新其缓存

我正在尝试用AlphabetIndexer实现一个快速滚动条,但是当光标改变时,它没有刷新索引chache.在我的CursorAdapter构造函数中,我调用setCursor(cursor)但没有任何更改,并根据文档:

如果光标发生变化,您的适配器负责通过调用setCursor(Cursor)来更新光标.getPositionForSection(int)方法执行二进制搜索给定部分(字母表)的起始索引.

但什么都没发生.我将其用于搜索过滤器,因此当我搜索联系人时,它会使用联系人更新列表,因此AlphabetIndexer应该用于更新列表中新项目的索引.

示例:我的整个列表以以"A"开头的联系人开头,以以"E"开头的联系人结束.所以AlphabetIndexer会在其缓存中包含这些索引.

但是,让我们尝试使用'C'搜索联系人,并假设我有250个以'C'开头的联系人.所以,我必须快速滚动浏览这些联系人,并且'C'索引必须显示,但不是只有'C'它显示所有索引,当我有整个列表时显示.

这是我的CursorAdapter构造函数,我为每个输入的字母调用setCursor(cursor):

public MyCursorAdapter(Context context, Cursor cursor, ArrayList<Integer> ids) 
        {
            super(context, cursor);
            try
            {
                mAlphaIndexer = new AlphabetIndexer(cursor, cursor.getColumnIndexOrThrow("Name")," ABCDEFGHIJKLMNOPQRSTUVWXYZ");
                notifyDataSetChanged(); 
                mAlphaIndexer.setCursor(cursor);        
                this.mSelectedContacts = ids;               
                Log.e("MyCursorAdapter", "construtor: ");
            }
            catch(Exception ex)
            {
                Log.e("MyCursorAdapter", "Error: " + ex);
            }
            finally
            {
                mAlphaIndexer.setCursor(cursor);
            }
        }
Run Code Online (Sandbox Code Playgroud)

android android-listview android-cursor

5
推荐指数
1
解决办法
1079
查看次数