Articles of simplecursoradapter

如何从FragmentActivity更新ListFragment中的ListView?

我在一个FragmentActivity中使用了一个ListFragment和一个SimpleCursorAdapter以及一个修改的CursorLoader。 修改后的CursorLoader只是发布rawQueries – 没有其他更改。 在FragmentActivity的某个时候,我需要重新获取ListFragment中ListView的ListView的数据/游标。 我怎样才能做到这一点? 提前谢谢了。 下面是调用ListFragment中的一个方法的FragmentActivity: public class ActivityList extends FragmentActivity { @Override protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent) { … processUpdateList(); } … private void processUpdateList() { Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragmentlist); if (fragment != null) { ((FragmentList) fragment).requeryList(); } } } 这里的ListFragment的方法,应该启动重新查询,重新加载或重新绘制的ListView。 ListView.invalidate()没有帮助 – 它没有改变显示的数据。 public class […]

如何从managedQuery转换到LoaderManager / CursorLoader?

我正在开发一个针对API级别8(2.2,Froyo)的Android应用程序。 我正在使用一个ContentProvider ,这很简单,我使用SimpleCursorAdapter来填写我的列表视图,但我注意到在SimpleCursorAdapter的文档中,无标签的构造函数是不赞成使用下面的注释: 这个构造函数已经被弃用了。 这个选项是不鼓励的,因为它会导致在应用程序的UI线程上执行游标查询,因此可能导致响应不佳,甚至导致应用程序不响应错误。 作为替代,使用带有CursorLoader的LoaderManager。 由于我的目标是API级别8,因此LoaderManager不绑定到Activity 。 兼容性包中的FragmentActivity类执行此操作,但我没有使用Fragments。 我的问题是:我应该如何在一个应用程序中使用LoaderManager/CursorLoader来达到11级以前的API级别? 我强迫过渡到片段,或者我应该回到弃用的SimpleCursorAdapter构造函数(但使用AsyncTask保持UI线程友好,这是CursorLoader应该这样做)?

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

如何将静态数据的ArrayAdapter<String>转换为在SearchView使用Suggestion Listener的CursorAdapter ? 我从静态数据( allString )构造了ArrayAdapter<String> ArrayAdapter<String> searchAdapter = new ArrayAdapter<String>(context, R.layout.listitem, allString); 我使用它的MultiAutoCompleteTextView在API级别小于11的设备上工作正常 MultiAutoCompleteTextView findTextView.setAdapter(searchAdapter); 然而,我的目标API是级别是11和API> 10我使用一个ActionBar ,我想有一个SearchView。 以下是我所尝试的:它显示了带有embedded式SearchView的ActionBar ,但没有像在MultiAutoCompleteTextView中那样提供任何build议。 @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); […]

如何通过点击里面的button来获取列表项的位置?

其实我已经读过一些关于这个问题的… 这是我使用的代码 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; […]

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

对不起,如果这看起来像一百万次相同的问题…但谷歌search这没有提供任何结果,只是一堆过时的教程使用managedQuery和其他废弃的解决scheme… 我经历了Android开发人员的培训以检索联系人列表 ,但教程不完整,甚至下载示例代码也无济于事,因为示例代码是用于更高级的联系人列表操作(search等) 在任何情况下,没有理由不应该有一个简单的解决scheme,所以我希望有人可以在这里回答,因为我相信这已经做了一百万次,我敢肯定数十个其他开始android开发人员会感激这一点。 我已经按照我的知识跟着教程,没有任何联系人出现。 我认为最重要的是TO_IDS是一个指向android.R.id.text1的整型数组。 我很困惑,这应该是以某种方式拉一个联系人姓名的数组。 另外,我很困惑为什么当最终目标是显示一个列表视图时需要一个textview …在教程中,我们有mContactsList这是一个列表视图…但是我们用一个指向R.layout.contact_list_item的适配器填充列表视图R.layout.contact_list_item ,它是由TO_IDS填充的textviews,整数数组。 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<Cursor>{ 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; […]

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

我正在编程一个Android应用程序,应该使用数据库来存储数据并从中读取数据。 使用本教程(在archive.org上)我得到了应用程序来创build一个数据库,我能够创build新的条目,但是,我不知道,如何读取数据库来获取存储在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() { […]

如何创build一个自定义的游标适配器的列表视图使用图像和文本?

您好想创build一个自定义的光标适配器,所以我可以用两行文本显示图像。 我在理解自定义光标适配器时遇到了一些麻烦,但我不明白如何添加一个imageview从我的数据库中的path填充。

Android:在自定义SimpleCursorAdapter中使用newView和bindView问题

我从我发现的唯一例子之一创build了一个自定义的SimpleCursorAdapter。 当我的ListActivity被调用,newView和bindView被调用我的每个数据库条目,并再次调用每个条目。 我有几个问题: – 是正确的例子(如果没有,我在哪里可以find一个)? 如果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 = […]

修改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 […]

如何在android中使用cursorloader读取SQLite数据库?

我正在设置我的应用程序,以便人们可以创build他们的朋友组。 创build组时,它将2个表写入SQL数据库。 第一个表格有一个组名称和一个组ID。 第二个表有2列,一个组ID和一个用户ID。 这工作正常。 但是,现在我想能够从数据库中读取。 我用一个cursorloader使用listview片段,但我无法获取信息显示。 我想在列表视图中列出第一个表中的所有组名。 我的问题是,当我第一次使用cursorloader来列出我的联系人时,我正在使用onCreateLoader方法中的content provider的Uri 。 具体来说,我有CONTENT_URI从ContactsContracts.Contacts类。 具有cursorloader示例: @Override public Loader<Cursor> onCreateLoader(int i, Bundle bundle) { Uri contentUri = ContactsContract.Contacts.CONTENT_URI; return new CursorLoader(getActivity(),contentUri,PROJECTION,SELECTION,ARGS,ORDER); } 但是,不使用内容提供者,我不知道要在onCreateLoader方法中放置什么,因为在第二个参数中return new CursorLoader(…)需要一个Uri 。 任何关于如何能够在列表视图中显示我的数据库数据的build议? 片段类代码: public class GroupListFragment extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor> { CursorAdapter mAdapter; private OnItemSelectedListener listener; private static final String[] PROJECTION ={GroupContract.GroupDetails.COLUMN_NAME_GROUP_NAME}; private […]