Articles of simplecursoradapter

如何通过单击其中的按钮获取列表项位置?

实际上我已经读过一些关于此的问题… 这是我使用的代码 auto = (ListView)findViewById(R.id.auto); String[] projection = new String[] {Browser.BookmarkColumns._ID,Browser.BookmarkColumns.TITLE,Browser.BookmarkColumns.URL}; String[] displayFields = new String[] {Browser.BookmarkColumns.TITLE, Browser.BookmarkColumns.URL}; int[] displayViews = new int[] { R.id.text1,R.id.text2 }; Cursor cur = managedQuery(android.provider.Browser.BOOKMARKS_URI,projection, null, null, null); //auto.setAdapter(new SimpleCursorAdapter(this, R.layout.mylist, cur,displayFields, displayViews)); myAdapter apt = new myAdapter(this, R.layout.mylist, cur,displayFields, displayViews); auto.setAdapter(apt); 和myAdapter类 class myAdapter extends SimpleCursorAdapter{ private Cursor c; […]

将ArrayAdapter转换为CursorAdapter以在SearchView中使用

如何将静态数据的ArrayAdapter转换为CursorAdapter以便在SearchView使用Suggestion Listener? 我从静态数据( allString )构造了ArrayAdapter ArrayAdapter searchAdapter = new ArrayAdapter(context, R.layout.listitem, allString); 我将它用于MultiAutoCompleteTextView ,它在API级别低于11的设备中工作正常 MultiAutoCompleteTextView findTextView.setAdapter(searchAdapter); 但是我的目标API是11级,对于API> 10,我使用ActionBar ,我希望在其中使用SearchView。 这是我尝试过的:它确实显示了带有嵌入式SearchView的ActionBar ,但没有像MultiAutoCompleteTextView那样提供任何建议。 @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); if (android.os.Build.VERSION.SDK_INT > 10){ inflater.inflate(R.menu.menu11, menu); searchView = (SearchView) menu.findItem(R.id.MENU_SEARCH).getActionView(); int[] to = {0}; CursorAdapter cursorAdapter = new SimpleCursorAdapter(context, R.layout.listitem, null, allBusStopString, to); searchView.setSuggestionsAdapter(cursorAdapter); […]

SimpleCursorAdapter vs CursorAdapter?

我有一些游标与数据。 我有TextView的可见性取决于光标项的某些属性。 我使用SimpleCursorAdapter并重写getView方法。 但我实际上不使用SimpleCursorAdapter的属性。 将适配器更改为CursorAdapter并重写newView和bindView方法会更好吗?

无法恢复活动

我是新手,并试图让我的ListView刷新SQLite数据库更新后。 修改我的onResume()方法后,我没有收到编译错误。 我正在使用SimpleCursorAdapter重新查询,但它不工作。 收到的错误来自logcat,并在下面。 请指教…例子最好的帮助。 logcat的: 02-19 21:31:49.933: E/AndroidRuntime(714): java.lang.RuntimeException: Unable to resume activity {com.loginplus.home/com.loginplus.home.LoginList}: java.lang.NullPointerException 02-19 21:31:49.933: E/AndroidRuntime(714): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2444) 02-19 21:31:49.933: E/AndroidRuntime(714): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2472) 02-19 21:31:49.933: E/AndroidRuntime(714): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1986) 02-19 21:31:49.933: E/AndroidRuntime(714): at android.app.ActivityThread.access$600(ActivityThread.java:123) 02-19 21:31:49.933: E/AndroidRuntime(714): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 02-19 21:31:49.933: E/AndroidRuntime(714): at android.os.Handler.dispatchMessage(Handler.java:99) 02-19 21:31:49.933: E/AndroidRuntime(714): at android.os.Looper.loop(Looper.java:137) 02-19 21:31:49.933: E/AndroidRuntime(714): at […]

Android ListView刷新

我有一个Listview ,它从sqlite数据库中提取和显示数据。 数据库的第一列中的数据显示在ListView ,点击后, Activity开始显示与第一列关联的列的其余部分。 在编辑数据时,需要更新ListView以反映这一点,但是除非应用程序重新启动,否则不会显示更新。 我已经尝试在我的onResume()方法中调用notifyDataSetChanged()和startActivityForResult() onResume()方法,但这并不起作用。 我应该使用什么方法来完成当前代码中的ListView更新? 我明白一个SimpleCursorAdapter可能会被使用,我试图没有成功实现该代码。 我是新手,需要真正的代码来了解需要做什么。 public class LoginList extends Activity implements OnClickListener, OnItemClickListener { private ListView loginList; private Button webLogin; private ListAdapter loginListAdapter; private ArrayList<LoginDetails> loginArrayList; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login_listview); loginList = (ListView) findViewById(R.id.loginlist); loginList.setOnItemClickListener(this); webLogin = (Button) findViewById(R.id.button3); webLogin.setOnClickListener(this); loginArrayList = new ArrayList<LoginDetails>(); loginListAdapter […]

为什么cursorLoader没有通知源数据的变化?

我有一个简单的contentProvider,一个带有ListView的布局和一个用于在Content Provider和CursorLoader中添加Items的button。 http://developer.android.com/reference/android/app/LoaderManager.LoaderCallbacks.html#onLoadFinished(android.content.Loader,D )参考指出 装载程序将监视数据的变化,并在此处通过新的调用向您报告。 你不应该自己监视数据。 例如,如果数据是一个Cursor,并将其放置在CursorAdapter中,则使用CursorAdapter(android.content.Context,android.database.Cursor,int)构造函数,而不传入FLAG_AUTO_REQUERY或FLAG_REGISTER_CONTENT_OBSERVER(即,使用0标志参数)。 这可以防止CursorAdapter自己观察游标,因为当发生变化时,您将得到一个新的游标在这里再次调用游标。 但是onLoadFinished方法中的Log.info行没有被执行,listView没有刷新。 这是我的(简单)代码: public class HomeActivity extends FragmentActivity implements LoaderManager.LoaderCallbacks<Cursor>{ static final String TAG = "HomeActivity"; SimpleCursorAdapter adapter; ListView listAnnunciVicini; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.home); listAnnunciVicini = (ListView) findViewById(R.id.lista_annunci_vicini); adapter = new SimpleCursorAdapter(this, R.layout.list_item, null, new String[] { ContentDescriptor.Annunci.Cols.ID, ContentDescriptor.Annunci.Cols.TITOLO, ContentDescriptor.Annunci.Cols.DESCRIZIONE }, new int[] { R.id.list_annunci_item_id_annuncio, […]

使用Cursor Adapter实现带多个select器的listview

在这个问题Android中讨论这个问题:过滤listview时检查错误的项目 。 总结这个问题,当使用带CursorAdapter和filter的列表视图时,在filter被删除后,被过滤的列表上选定的项目将会失去select,相反,未过滤列表中该位置的项目将被选中。 使用上面链接问题中的代码示例,我们应该在哪里放置代码来标记checkbox。 我相信它应该在CustomCursorAdapter的getView()方法中,但是我不确定。 另外,我们如何访问HashSet来保存自定义适配器类中的所有selectedIds,因为它将在保存列表的主活动中被初始化和修改。 我的活动实现ListView @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.selectfriends); Log.v(TAG, "onCreate called") ; selectedIds = new ArrayList<String>() ; selectedLines = new ArrayList<Integer>() ; mDbHelper = new FriendsDbAdapter(this); mDbHelper.open() ; Log.v(TAG, "database opened") ; Cursor c = mDbHelper.fetchAllFriends(); startManagingCursor(c); Log.v(TAG, "fetchAllFriends Over") ; String[] from = new String[] {mDbHelper.KEY_NAME}; int[] […]

Android,使用SimpleCursorAdapter来设置颜色不仅仅是string

我有一个简单的游标适配器设置在我的应用程序列表中,如下所示: private static final String fields[] = {"GenreLabel", "Colour", BaseColumns._ID}; datasource = new SimpleCursorAdapter(this, R.layout.row, data, fields, new int[]{R.id.genreBox, R.id.colourBox}); R.layout.row由两个TextView(genreBox和colourBox)组成。 而不是将TextView的内容设置为“Color”的值,我想将其背景颜色设置为该值。 我需要做什么才能做到这一点?

在ListView中保持滚动位置的同时更新SimpleCursorAdapter

我的问题:我的ListView重置其滚动位置顶部,每当我通过其(定制)SimpleCursorAdapter更新其内容。 我希望ListView在更新时保持其滚动位置。 我开始创build一个新的适配器实例,每次使用ListView.setAdapter() ,但根据这个讨论,我应该更新适配器,而不是重置它。 我无法find一种方法来正确工作的SimpleCursorAdapter。 以下是我尝试过的一些东西,省略了方法参数: – 带有新光标的SimpleCursorAdapter.changeCursorAndColumns()成功更新适配器,但仍然重置滚动位置。 – SimpleCursorAdapter.changeCursor()行为方式相同。 – SimpleCursorAdapter.swapCursor()不可用,直到API 11,我正在开发的API 8。 – SimpleCursorAdapter.notifyDataSetChanged()不会更新ListView。 (也许我错过了另一个步骤。) ListView.invalidate()不会更新ListView。 – SimpleCursorAdapter.requery()使ListView SimpleCursorAdapter.requery()空白,不推荐使用。 – 我熟悉ListView.setSelection()解决scheme,但我不希望我的ListView在更新时完全移动。 这将它捕捉到列表中的一个位置。 这似乎应该是一个普遍而简单的问题。 有人处理了吗?

在SimpleCursorAdapter中使用哪个标志?

我使用SimpleCursorAdapter将从database读取的数据发送到ListView 。 SimpleCursorAdapter有两个标志,其中一个已被弃用。 我应该总是使用FLAG_CONTENT_OBSERVER吗? 还是使用其他的而不是SimpleCursorAdapter ?