目前没有可用的RecyclerView.Adapter的默认实现.
可能正式发布,谷歌将添加它.
由于不存在用于支持CursorAdapter与RecyclerView当前,如何才能使用RecyclerView同一个数据库?有什么建议 ?
为什么当我使用SimpleCursorAdapter for ListView时,我在ListView中有像这样的项高度 - 
(我的代码基于此)
但是当使用数组Listview项目有很大的高度

(我基于此学习listview )
项目列表视图的行布局是
<?xml version="1.0" encoding="utf-8"?>
<TextView android:id="@+id/text1"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
Run Code Online (Sandbox Code Playgroud)
所以我的问题是为什么使用ArrayAdapter和SimpleCursorAdapter时行高的差异?
android listview row android-arrayadapter simplecursoradapter
我在数据库中有1-50条记录.我使用游标获取这些数据,并使用简单光标适配器将这些值设置为Spinner.现在我需要的是我想设置一个值,将第39个值设置为默认值.但不是我的立场,我想通过它的价值来设定.
我知道如何通过其位置设置微调器默认值
spinner.setSelection(39)
Run Code Online (Sandbox Code Playgroud)
将微调器设置为该值.
但我不知道在数据库中通过其值(文本)设置微调器默认值.我知道数据库中的值.例如,"书籍"是微调器中的一个值.我需要将微调器默认设置为书籍.
有没有办法做到这一点?
我是Android开发的新手......来自iPhone和.Net背景.我见过与此问题非常相似的问题,但没有一个问题涉及SimpleCursorAdapter.
我有一个基本的ListActivity,它使用Cursor将SQLite查询中的数据绑定到我的ListView:
ListAdapter adapter = new SimpleCursorAdapter(
this,
android.R.layout.simple_list_item_1,
c,
new String[] {"name"},
new int[] {android.R.id.text1});
setListAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
然后单击某个项目时:
public void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//Difference between this:
Cursor c = (cursor)l.getItemAtPosition(position);
//and this??
Cursor c = (Cursor)l.getAdapter().getItem(position);
int categoryId = c.getInt(0);
}
Run Code Online (Sandbox Code Playgroud)
这是获取所选元素的id的正确方法吗?这看起来很奇怪,因为我不认为我可以在数据库关闭后使用我的光标(这是在我绑定之后).当我无法找到从该ID中获取实际项目的方法时,传入ID的重点是什么?另外,我不明白为什么getItemAtPosition()会返回一个游标......游标被绑定到整个列表; 不只是一排.最后,如果这是正确的,获得光标的两种方式之间是否存在差异?谢谢.
我正在设置我的应用程序,以便人们可以创建他们的朋友组.创建组时,它会将2个表写入SQL数据库.第一个表有一个组名和一个组ID.第二个表有2列,一个组ID和一个用户ID.这工作正常.
但是,现在我希望能够从数据库中读取.我正在使用listview片段,cursorloader但是我无法显示信息.我想列出列表视图中第一个表中的所有组名.
我的问题是,当我第一次使用的cursorloader列出我的联系人,我使用的是Uri来自content provider于onCreateLoader方法.特别是我CONTENT_URI从ContactsContracts.Contacts班上来的.
的例子cursorloader有contentprovider:
@Override
public Loader<Cursor> onCreateLoader(int i, Bundle bundle) {
Uri contentUri = ContactsContract.Contacts.CONTENT_URI;
return new CursorLoader(getActivity(),contentUri,PROJECTION,SELECTION,ARGS,ORDER);
}
Run Code Online (Sandbox Code Playgroud)
但是,如果不使用内容提供程序,我不知道该onCreateLoader方法应该放什么,因为在第二个参数中return new CursorLoader(...)需要a Uri.
有关如何在列表视图中显示数据库数据的任何建议?
片段类代码:
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 static final String SELECTION = null;
final String[] FROM = …Run Code Online (Sandbox Code Playgroud) android android-listview simplecursoradapter android-fragments android-cursorloader
我有一个Spinner,它显示从数据库中获取的数据列表.数据从查询返回到游标,并将光标传递给spinner的SimpleCursorAdapter.这样工作正常,但我想在这些数据之上插入另一个项目.例如,微调器已经显示了保存在DB中的用户创建模板列表,但我想在模板列表的顶部插入"新模板"和"空模板",并且需要将其插入到Cursor/SimpleCursorAdapter中不知何故.
我考虑过使用arraylist并从光标中填充arraylist,但是光标对我来说是更好的解决方案,因为它也包含其他相关的数据行.我搜索了互联网的其他解决方案,并找到了一些要求使用CursorWrapper的答案,但我找不到一个具体的例子如何使用CursorWrapper来实现我想要的.如何在光标中插入一些行或者有人可以给出一个易于遵循的CursorWrapper示例!提前致谢.
SimpleCursorAdapter使用以下注释弃用其构造函数之一:
已过时.不鼓励使用此选项,因为它会导致在应用程序的UI线程上执行Cursor查询,从而导致响应能力较差甚至应用程序无响应错误.作为替代方案,使用android.app.LoaderManager和android.content.CursorLoader.
这是否会使整个班级弃用?不推荐使用其他(标准)构造函数.
我试图通过使用异步查询提供CursorLoader了SimpleCursorTreeAdapter
这是我Fragment实现的类CursorLoader
public class GroupsListFragment extends ExpandableListFragment implements
LoaderManager.LoaderCallbacks<Cursor> {
private final String DEBUG_TAG = getClass().getSimpleName().toString();
private static final String[] CONTACTS_PROJECTION = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME };
private static final String[] GROUPS_SUMMARY_PROJECTION = new String[] {
ContactsContract.Groups.TITLE, ContactsContract.Groups._ID,
ContactsContract.Groups.SUMMARY_COUNT,
ContactsContract.Groups.ACCOUNT_NAME,
ContactsContract.Groups.ACCOUNT_TYPE,
ContactsContract.Groups.DATA_SET };
GroupsAdapter mAdapter;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
populateContactList();
getLoaderManager().initLoader(-1, null, this);
}
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
// This is called when a new Loader needs …Run Code Online (Sandbox Code Playgroud) android expandablelistadapter simplecursoradapter android-cursorloader
如何将ArrayAdapter<String>静态数据转换CursorAdapter为使用Suggestion Listener SearchView?我构建了ArrayAdapter<String>from static data(allString)
ArrayAdapter<String> searchAdapter = new ArrayAdapter<String>(context, R.layout.listitem, allString);
Run Code Online (Sandbox Code Playgroud)
我将它用于MultiAutoCompleteTextView在API级别低于11的设备中正常工作
MultiAutoCompleteTextView findTextView.setAdapter(searchAdapter);
Run Code Online (Sandbox Code Playgroud)
但是我的目标API是11级,而对于API> 10,我使用的是ActionBar其中我希望有一个SearchView.
这是我所尝试的:它确实显示ActionBar嵌入式SearchView但不提供任何建议,因为它会在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);
searchView.setOnSuggestionListener(new OnSuggestionListener() {
@Override
public boolean onSuggestionClick(int position) { …Run Code Online (Sandbox Code Playgroud) android autocompletetextview simplecursoradapter android-actionbar android-cursoradapter
实际上我已经读过一些关于此的问题......
这是我使用的代码
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);
Run Code Online (Sandbox Code Playgroud)
和类myAdapter
class myAdapter extends SimpleCursorAdapter{
private Cursor c;
private Context context;
public myAdapter(Context context, int layout, Cursor c, String[] from,
int[] to) {
super(context, layout, c, from, to);
// TODO Auto-generated constructor stub …Run Code Online (Sandbox Code Playgroud)