Articles of simplecursoradapter

Android Listview – 使用游标时无法选择多个项目

我有一个listview填充了使用SimpleCursorAdapter的游标数据。 我想这样做,所以我可以选择多个项目,每个项目都有一个checkbox,但我只能一次检查一个项目,即每次选择一个项目时,它将清除当前选择的项目。 如果我使用ArrayAdapter填充列表视图,它工作正常。 我可以选择多个项目。 所以我不知道为什么它不适用于SimpleCursorAdapter。 如果重要的话,这将在DialogFragment中创建。 真的把头发拉出来,请帮助!! 这是代码: Cursor attributesCursor = mDBHelper.getItemAttributesbyType(menuID, itemID, “M”); getActivity().startManagingCursor(attributesCursor); ListView lv = new ListView(this.getActivity()); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); lv.setLayoutParams(params); SimpleCursorAdapter adapter = new SimpleCursorAdapter( getActivity(), android.R.layout.simple_list_item_multiple_choice, attributesCursor, new String[] { “AttributeDescription” }, new int[] { android.R.id.text1 },0); attributesLinearLayout.addView(lv); lv.setAdapter(adapter); lv.setItemsCanFocus(false); lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 编辑:只是添加一些额外的信息,如果我使用这个代码,多选项列表视图,其中“items”是一个简单的字符串数组: lv.setAdapter(new ArrayAdapter(this.getActivity(), android.R.layout.simple_list_item_multiple_choice, items)); […]

如何从managedQuery转换到LoaderManager / CursorLoader?

我正在开发一个针对API级别8(2.2,Froyo)的Android应用程序。 我正在使用ContentProvider ,这很简单,我正在使用SimpleCursorAdapter填写我的列表视图,但我在SimpleCursorAdapter的文档中注意到,不推荐使用以下注释的无标记构造函数: 不推荐使用此构造函数。 不鼓励使用此选项,因为它会导致在应用程序的UI线程上执行Cursor查询,从而导致响应能力较差甚至应用程序无响应错误。 作为替代方案,使用带有CursorLoader的LoaderManager。 由于我的目标是API级别8,因此LoaderManager与Activity无关。 兼容包中的FragmentActivity类执行此操作,但我没有使用Fragments。 我的问题是:我应该如何在针对11之前API级别的应用中使用LoaderManager/CursorLoader ? 我是否被迫转换到Fragments,或者我应该回到不推荐使用的SimpleCursorAdapter构造函数(但是使用AsyncTask来保持UI线程友好,这就是CursorLoader应该做的事情)?

如何为列表视图创建自定义游标适配器以用于图像和文本?

您想创建一个自定义光标适配器,以便我可以显示包含2行文本的图像。 我在理解自定义游标适配器时遇到了一些麻烦,但我不明白如何添加要从我的数据库中的路径填充的imageview。

修改SimpleCursorAdapter的数据

我正在制作一个电视指南应用程序,该应用程序使用ListActivity显示一个频道/一天的电视节目。 我正在为ListView项使用RelativeLayout ,我希望ListView看起来像这样: 07:00 The Breakfast Show Latest news and topical reports 08:00 Tom and Jerry More cat and mouse capers 我使用以下代码获取ListView项的数据: Cursor cursor = db.rawQuery(SELECT blah,blah,blah); String[] columnNames = new String[]{“start_time”,”title”, “subtitle”}; int[] resIds = new int[]{R.id.start_time_short, R.id.title, R.id.subtitle}; adapter = new SimpleCursorAdapter(this, R.layout.guide_list_item, cursor, columnNames, resIds); 我的问题是start_time字段是一个datetime ,格式如下: 2011-01-23 07:00:00 所以我得到的是: 2011-01-23 07:00:00 […]

Android:自定义SimpleCursorAdapter中的newView和bindView问题

我从我发现的唯一一个例子中创建了一个自定义的SimpleCursorAdapter。 当我的ListActivity被调用时,我的每个数据库条目都会调用newView和bindView,并为每个条目再次调用。 我有几个问题: – 这是正确的例子(如果没有,我在哪里可以find一个)? -if bindView调用总是在newView调用之前,为什么在两个函数中都这样做? 为什么是newView-bindView序列为每个项目调用两次? 为什么有些CursorAdapter示例使用getView而不是newView和bindView? 基本上,应该如何使用SimpleCursorAdapter,以及我的代码有什么问题? 谢谢 ListActivity public class ContactSelection extends ListActivity { private WhipemDBAdapter mDbHelper; private FriendAdapter friendAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mDbHelper = new WhipemDBAdapter(this); mDbHelper.open(); setContentView(R.layout.contact_list); Cursor c = mDbHelper.fetchAllFriends(); startManagingCursor(c); String[] from = new String[] {}; int[] to = new int[] {}; this.friendAdapter […]

Android:使用SimpleCursorAdapter将数据从数据库获取到ListView

我正在编写一个Android应用程序,应该使用数据库来存储数据并从中读取数据。 使用本教程(在archive.org上)我得到了创建数据库的应用程序,我可以创建新条目,但是,我不知道,如何读取数据库以获取ListView中存储的数据。 我知道这个网站上有很多类似的问题,但似乎没有一个适用于这种方式,教程中的数据库也适用。 码: import java.util.Calendar; import maturarbeit.nicola_pfister.studenttools.database.DBAdapter; import android.app.AlertDialog.Builder; import android.app.ListActivity; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.database.Cursor; import android.os.Bundle; import android.support.v4.widget.SimpleCursorAdapter; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.widget.ListView; public class Marks extends ListActivity { DBAdapter db = new DBAdapter(this); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.marks); } @Override protected void onPause() { […]

如何在Android for Android api 11+的列表视图中显示联系人

我很抱歉,如果这看起来像一百万次相同的问题…但谷歌搜索这个没有提供任何结果,只是一堆过时的教程使用managedQuery和其他已弃用的解决方案…… 我通过Android开发人员培训检索联系人列表 ,但教程不完整,甚至下载示例代码也无济于事,因为示例代码用于更高级的联系人列表操作(搜索等) 在任何情况下,没有理由不应该有一个简单的解决方案,所以我希望有人可以在这里回答,因为我确信这已经做了一百万次,我相信其他几十个开始Android开发人员我会很感激的。 没有联系人出现,我已经按照我的知识进行了教程。 我认为最重要的是TO_IDS是一个指向android.R.id.text1的整数数组。 我很困惑如何以某种方式拉出一系列联系人姓名。 另外,我很困惑为什么当最终目标是显示列表视图时需要textview …在教程中,我们有mContactsList这是一个列表视图…但我们使用指向R.layout.contact_list_item的适配器填充列表视图R.layout.contact_list_item ,它只是由TO_IDS填充的文本视图,这是一个整数数组。 mContactsList = (ListView) getActivity().findViewById(R.layout.contact_list_view); mCursorAdapter = new SimpleCursorAdapter( getActivity(), R.layout.contact_list_item, null, FROM_COLUMNS, TO_IDS, 0); mContactList.setAdapter(mCursorAdapter); 我做错了什么,如何在列表视图中显示联系人列表? 编辑:添加我的代码: 在我的片段类中: public class MyFragment extends Fragment implements LoaderManager.LoaderCallbacks{ private static final String[] FROM_COLUMNS = {ContactsContract.Contacts.DISPLAY_NAME_PRIMARY }; private static final int[] TO_IDS = {android.R.id.text1}; ListView mContactList; private SimpleCursorAdapter mCursorAdapter; […]

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

实际上我已经读过一些关于此的问题… 这是我使用的代码 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方法会更好吗?