您好我正在寻找与sqlite一起使用游标适配器的示例代码?
database sqlite android android-layout android-cursoradapter
我正在尝试创建一个自定义cursoradapter,它将根据游标中的某些数据使用两种不同的布局.我一直在阅读'覆盖getViewTypeCount()和getItemViewType()'来实现这一点,但我似乎无法弄清楚如何实现这一点.
这是我的bindView和新的View方法的代码:
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView tView = (TextView) view.findViewById(R.id.TextView1);
tView.setText("The text");
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return mInflater.inflate(R.layout.item1, parent, false);
}
Run Code Online (Sandbox Code Playgroud)
.
编辑: 现在我有这个工作,但我想选择使用什么rowlayout取决于光标中的一些数据,我不能得到那个工作..任何人有一些想法?
@Override
public int getItemViewType(int position) {
return position % 2;
}
@Override
public int getViewTypeCount() {
return 2;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewHolder holder = (ViewHolder) view.getTag();
holder.txtAddress
.setText("blabla");
}
@Override
public View newView(Context context, …Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用Android兼容性库.我已经按照DevGuide(http://developer.android.com/reference/android/app/Fragment.html)中的描述设置了ListFragment ,并且使用了一个简单的CursorLoader Christian而没有内容提供者(没有ContentProvider的CursorLoader用法)).
问题是,在我的ListFragment/parent Activity中,我应该打开数据库,返回Cursor,创建Adapter和setListAdapter?
所以在我的应用程序中,我有TitlesFragment,DetailsFragment,FragmentLayoutActivity,DetailsLayoutActivity.
是最好的做法......
在ListFragment中打开数据库并在ListFragment中onActivityCreated关闭它,onDestroy就像在下面的代码示例中一样
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// Open database
playersDatabaseHelper = new PlayersDBAdapter(getActivity());
playersDatabaseHelper.open();
getLoaderManager().initLoader(0, null, this);
...
}
@Override
public void onDestroy() {
super.onDestroy();
if (playersDatabaseHelper != null) {
playersDatabaseHelper.close();
}
}
Run Code Online (Sandbox Code Playgroud)查询数据库并返回光标onCreateLoader,并onLoadFinished在下面的代码示例中创建Adapter和setListAdapter
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
// Now create and return a CursorLoader that will take care of
// creating a Cursor …Run Code Online (Sandbox Code Playgroud)我总是ViewHolder在自定义ArrayAdapter类中使用模式.但是,CursorAdapter该getView()方法并非强制要求被覆盖,而是具有bindView和newView方法.
我的问题是 - 是CursorAdapter通过内部实现ViewHolder模式重新使用视图还是需要像我们通常在自定义中那样进行编码ArrayAdapter?如果需要编码,那么正确的方法是什么?
更新
我正在使用 android.support.v4.widget.CursorAdapter
我创建了一个Activity,因为我正在实现CursorLoader以从数据库加载数据.
我已经为该表的所有记录做了那件事,但我想加载30-30条记录,比如加载更多功能
我试图创建查询并加载前30条记录,但我无法理解如何请求新记录.
我的活动代码如下:
public class ProductListActivity extends AppCompatActivity
implements LoaderManager.LoaderCallbacks<Cursor> {
/**
* Records in list
*/
int offset = 0;
/**
* For Current Activity *
*/
Context mContext;
/**
* Activity Binding
*/
ActivityProductListBinding activityProductListBinding;
/**
* Product Adapter
*/
ProductListAdapter productListAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**
* DataBinding with XML
*/
activityProductListBinding = DataBindingUtil.setContentView(this, R.layout.activity_product_list);
/**
* Getting Context
*/
mContext = getApplicationContext();
/***
* TOOLBAR Settings...
*/
setSupportActionBar(activityProductListBinding.toolbar);
activityProductListBinding.toolbarTitleTextview.setText(R.string.string_title_products); …Run Code Online (Sandbox Code Playgroud) android android-contentprovider android-cursor android-cursorloader android-cursoradapter
CursorAdaptor我的项目中有一个自定义的方法bindView(View view, Context context, Cursor cursor)和覆盖方法newView(View view, Context context, Cursor cursor).我想知道什么CursorAdapter是用于什么,以及什么是覆盖bindView()和使用的区别和使用newView().
如何将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
我很惊讶有一个关于使用游标适配器和列表适配器进行拖放排序的少量信息.
我在stackoverflow上找到的最近的帖子就是这个:
但是,我不清楚如何实现CommonsWare建议的内容 - 澄清会非常有用.
到目前为止,我将游标数据绑定到列表适配器并将其设置如下:
mMyCursorAdapter = new MyCursorAdapter(getActivity(), null);
setListAdapter(mMyCursorAdapter);
getLoaderManager().initLoader(0, null, this);
Run Code Online (Sandbox Code Playgroud)
生成列表但我现在希望将拖放功能添加到列表项.
我想知道从架构的角度来看这个问题的最佳方法,任何关于如何开发核心功能的指针也会很有用.
在getView()中CursorAdapter,有一个参数position,所以我可以做一个检查position,我该怎么做同样的bindView()它没有position参数BindView.
目前我重写newView(),bindView()和getView()我读和听到的是坏的,无论是覆盖getView()或newView()和getView().
谢谢.
我有一些代码对数据库执行两个查询并返回两个游标对象.有没有什么方法可以将这两个游标组合起来,以便所有游戏都ListView可以获取数据?