Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SherlockListFrgament与Commonware Loaderex,can';更新数据 公共类NewFriendsListFragment扩展了SherlockListFragment实现 LoaderManager.LoaderCallbacks{ 国际月变、日变; 对话; int pos; 选中TextView ctv_名称; 私有SimpleCursorAdapter mAdapter=null; 私有SQLiteCursorLoader加载器=null; 串滤波器; 私有静态处理程序responseHandler; 布尔加载=假; @凌驾 已创建ActivityState上的公共无效(Bundle savedInstanceState){ super.onActivityCreated(savedInstanceState); //还有一些东西。。。 设置选项菜单(真); mAdapter=new FriendListSCA(getSherlockActivity().getApplicationContext(), R.layout.friend_项,null,null,null,null,null,NAME), 新字符串[]{NAME,MONTH,UID},新int[]{R.id.NAME,R.id.info,R.id.profile_pic}); setListAdapter(mAdapter); SetListShowed(假); registerForContextMenu(getListView()); getLoaderManager().initLoader(0,null,this); responseHandler=新处理程序() { //处理程序代码 }; } 公共加载器onCreateLoader(int-loaderId,Bundle-args){ //加载器代码 返回(装载机); } public void onLoadFinished(加载器,光标){ mAdapter.changeCursor(游标); //展示列表 如果(isResumed()){ SetListShowed(真); }否则{ SetListShownAnimation(真); } } 公共void onLoaderReset(加载器){ mAdapter.changeCursor(空); } @凌驾 公共布尔值onContextItemSelected(android.view.MenuItem项){ AdapterContextMenuInfo信息; 试一试{ info=(AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); }catch(ClassCastException e){ 返回false; } 位置=信息位置; 开关(item.getItemId()){ 案例R.id.edit_项目: 显示_对话框(); 返回true; } 返回(super.onOptionsItemSelected(item)); } @凌驾 public void onListItemClick(列表视图l、视图v、最终整数位置、长id){ Log.e(“onListItemClick”、“insideonListItemClick”); ContentValues cv=新的ContentValues(); //更多代码 update(表名称包括,cv,_ID+“=?”,新字符串[]{Integer.toString(position)}); } 私有类FriendListSCA扩展了SimpleCursorAdapter { public FriendListSCA(上下文、int布局、游标c、, 字符串[]从,整数[]到){ super(上下文、布局、c、from、to、0); setViewBinder(新的FriendsListDataViewBinder()); } } 公共类FriendsListDataViewBinder实现SimpleCursorAdapter.ViewBinder { //_ID+”、“+UID+”、“+NAME+”、“+MONTH+”、“+DAY+”、“+WISH @凌驾 公共布尔setViewValue(视图、光标c、int-columnIndex) { 开关(view.getId()) { 案例R.id.name: CheckedTextView ctv=(CheckedTextView)视图; ctv.setText(c.getString(2)); 如果(c.getInt(5)==0 | | c.getInt(4)=-1) { ctv.setPaintFlags(ctv.getPaintFlags()| Paint.STRIKE_-THRU_-TEXT_-FLAG); ctv.setChecked(假); } 其他的 { ctv.setPaintFlags(ctv.getPaintFlags()&(~Paint.STRIKE_-THRU_-TEXT_-FLAG)); ctv.setChecked(真); } 返回true; 案例R.id.info: 如果(c.getInt(4)!=-1) { (TextView)view.setText(Utility.MONTH_NAME[c.getInt(3)-1]+“”+Integer.toString(c.getInt(4)); } 其他的 { ((文本视图)视图).setText(“点击并按住以手动输入”); } 返回true; 案例R.id.profile\u图片: 如果(!已加载) 返回true; ((ImageView)视图).setImageBitmap(Utility.model.getImage( Long.toString(c.getLong(1)),getURL(c.getLong(1)); 返回true; } 返回false; } } 专用void show_对话框() { //日期选择器代码 好的。setOnClickListener(新建按钮。OnClickListener(){ @凌驾 公共void onClick(视图v) { ContentValues cv=新的ContentValues(); cv.put(月、月变化); cv.put(日、日变化); update(表名称包括,cv,_ID+“=?”,新字符串[]{Integer.toString(pos)}); //getLoaderManager().restartLoader(0,null,NewFriendsListFragment.this); //我试着调用重新启动加载程序,但没有,当我检查时 //结果是sqlite数据库没有被更新 responseHandler.sendEmptyMessage(1);//只是取消对话框 } }); dialog.show(); } @凌驾 创建选项菜单(菜单菜单,菜单充气机){ //放置一个用于搜索的操作栏项。 MenuItem item=menu.add(“搜索”); 设置图标(android.R.drawable.ic\u菜单\u搜索); item.setShowAsAction(菜单项始终显示为动作); View searchView=SearchViewCompat.newSearchView(getActivity()); if(searchView!=null){ SearchViewCompat.setOnQueryTextListener(searchView, 新OnQueryTextListenerCompat(){ @凌驾 公共布尔值onQueryTextChange(字符串filtext){ mCurFilter=!TextUtils.isEmpty(filtext)?filtext:null; getLoaderManager().restartLoader(0,null,NewFriendsListFragment.this); 返回true; } }); item.setActionView(searchView); } } @凌驾 公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){ //TODO自动生成的方法存根 } }_Android_Sqlite_Actionbarsherlock_Android Cursorloader_Commonsware Cwac - Fatal编程技术网

SherlockListFrgament与Commonware Loaderex,can';更新数据 公共类NewFriendsListFragment扩展了SherlockListFragment实现 LoaderManager.LoaderCallbacks{ 国际月变、日变; 对话; int pos; 选中TextView ctv_名称; 私有SimpleCursorAdapter mAdapter=null; 私有SQLiteCursorLoader加载器=null; 串滤波器; 私有静态处理程序responseHandler; 布尔加载=假; @凌驾 已创建ActivityState上的公共无效(Bundle savedInstanceState){ super.onActivityCreated(savedInstanceState); //还有一些东西。。。 设置选项菜单(真); mAdapter=new FriendListSCA(getSherlockActivity().getApplicationContext(), R.layout.friend_项,null,null,null,null,null,NAME), 新字符串[]{NAME,MONTH,UID},新int[]{R.id.NAME,R.id.info,R.id.profile_pic}); setListAdapter(mAdapter); SetListShowed(假); registerForContextMenu(getListView()); getLoaderManager().initLoader(0,null,this); responseHandler=新处理程序() { //处理程序代码 }; } 公共加载器onCreateLoader(int-loaderId,Bundle-args){ //加载器代码 返回(装载机); } public void onLoadFinished(加载器,光标){ mAdapter.changeCursor(游标); //展示列表 如果(isResumed()){ SetListShowed(真); }否则{ SetListShownAnimation(真); } } 公共void onLoaderReset(加载器){ mAdapter.changeCursor(空); } @凌驾 公共布尔值onContextItemSelected(android.view.MenuItem项){ AdapterContextMenuInfo信息; 试一试{ info=(AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); }catch(ClassCastException e){ 返回false; } 位置=信息位置; 开关(item.getItemId()){ 案例R.id.edit_项目: 显示_对话框(); 返回true; } 返回(super.onOptionsItemSelected(item)); } @凌驾 public void onListItemClick(列表视图l、视图v、最终整数位置、长id){ Log.e(“onListItemClick”、“insideonListItemClick”); ContentValues cv=新的ContentValues(); //更多代码 update(表名称包括,cv,_ID+“=?”,新字符串[]{Integer.toString(position)}); } 私有类FriendListSCA扩展了SimpleCursorAdapter { public FriendListSCA(上下文、int布局、游标c、, 字符串[]从,整数[]到){ super(上下文、布局、c、from、to、0); setViewBinder(新的FriendsListDataViewBinder()); } } 公共类FriendsListDataViewBinder实现SimpleCursorAdapter.ViewBinder { //_ID+”、“+UID+”、“+NAME+”、“+MONTH+”、“+DAY+”、“+WISH @凌驾 公共布尔setViewValue(视图、光标c、int-columnIndex) { 开关(view.getId()) { 案例R.id.name: CheckedTextView ctv=(CheckedTextView)视图; ctv.setText(c.getString(2)); 如果(c.getInt(5)==0 | | c.getInt(4)=-1) { ctv.setPaintFlags(ctv.getPaintFlags()| Paint.STRIKE_-THRU_-TEXT_-FLAG); ctv.setChecked(假); } 其他的 { ctv.setPaintFlags(ctv.getPaintFlags()&(~Paint.STRIKE_-THRU_-TEXT_-FLAG)); ctv.setChecked(真); } 返回true; 案例R.id.info: 如果(c.getInt(4)!=-1) { (TextView)view.setText(Utility.MONTH_NAME[c.getInt(3)-1]+“”+Integer.toString(c.getInt(4)); } 其他的 { ((文本视图)视图).setText(“点击并按住以手动输入”); } 返回true; 案例R.id.profile\u图片: 如果(!已加载) 返回true; ((ImageView)视图).setImageBitmap(Utility.model.getImage( Long.toString(c.getLong(1)),getURL(c.getLong(1)); 返回true; } 返回false; } } 专用void show_对话框() { //日期选择器代码 好的。setOnClickListener(新建按钮。OnClickListener(){ @凌驾 公共void onClick(视图v) { ContentValues cv=新的ContentValues(); cv.put(月、月变化); cv.put(日、日变化); update(表名称包括,cv,_ID+“=?”,新字符串[]{Integer.toString(pos)}); //getLoaderManager().restartLoader(0,null,NewFriendsListFragment.this); //我试着调用重新启动加载程序,但没有,当我检查时 //结果是sqlite数据库没有被更新 responseHandler.sendEmptyMessage(1);//只是取消对话框 } }); dialog.show(); } @凌驾 创建选项菜单(菜单菜单,菜单充气机){ //放置一个用于搜索的操作栏项。 MenuItem item=menu.add(“搜索”); 设置图标(android.R.drawable.ic\u菜单\u搜索); item.setShowAsAction(菜单项始终显示为动作); View searchView=SearchViewCompat.newSearchView(getActivity()); if(searchView!=null){ SearchViewCompat.setOnQueryTextListener(searchView, 新OnQueryTextListenerCompat(){ @凌驾 公共布尔值onQueryTextChange(字符串filtext){ mCurFilter=!TextUtils.isEmpty(filtext)?filtext:null; getLoaderManager().restartLoader(0,null,NewFriendsListFragment.this); 返回true; } }); item.setActionView(searchView); } } @凌驾 公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){ //TODO自动生成的方法存根 } }

SherlockListFrgament与Commonware Loaderex,can';更新数据 公共类NewFriendsListFragment扩展了SherlockListFragment实现 LoaderManager.LoaderCallbacks{ 国际月变、日变; 对话; int pos; 选中TextView ctv_名称; 私有SimpleCursorAdapter mAdapter=null; 私有SQLiteCursorLoader加载器=null; 串滤波器; 私有静态处理程序responseHandler; 布尔加载=假; @凌驾 已创建ActivityState上的公共无效(Bundle savedInstanceState){ super.onActivityCreated(savedInstanceState); //还有一些东西。。。 设置选项菜单(真); mAdapter=new FriendListSCA(getSherlockActivity().getApplicationContext(), R.layout.friend_项,null,null,null,null,null,NAME), 新字符串[]{NAME,MONTH,UID},新int[]{R.id.NAME,R.id.info,R.id.profile_pic}); setListAdapter(mAdapter); SetListShowed(假); registerForContextMenu(getListView()); getLoaderManager().initLoader(0,null,this); responseHandler=新处理程序() { //处理程序代码 }; } 公共加载器onCreateLoader(int-loaderId,Bundle-args){ //加载器代码 返回(装载机); } public void onLoadFinished(加载器,光标){ mAdapter.changeCursor(游标); //展示列表 如果(isResumed()){ SetListShowed(真); }否则{ SetListShownAnimation(真); } } 公共void onLoaderReset(加载器){ mAdapter.changeCursor(空); } @凌驾 公共布尔值onContextItemSelected(android.view.MenuItem项){ AdapterContextMenuInfo信息; 试一试{ info=(AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); }catch(ClassCastException e){ 返回false; } 位置=信息位置; 开关(item.getItemId()){ 案例R.id.edit_项目: 显示_对话框(); 返回true; } 返回(super.onOptionsItemSelected(item)); } @凌驾 public void onListItemClick(列表视图l、视图v、最终整数位置、长id){ Log.e(“onListItemClick”、“insideonListItemClick”); ContentValues cv=新的ContentValues(); //更多代码 update(表名称包括,cv,_ID+“=?”,新字符串[]{Integer.toString(position)}); } 私有类FriendListSCA扩展了SimpleCursorAdapter { public FriendListSCA(上下文、int布局、游标c、, 字符串[]从,整数[]到){ super(上下文、布局、c、from、to、0); setViewBinder(新的FriendsListDataViewBinder()); } } 公共类FriendsListDataViewBinder实现SimpleCursorAdapter.ViewBinder { //_ID+”、“+UID+”、“+NAME+”、“+MONTH+”、“+DAY+”、“+WISH @凌驾 公共布尔setViewValue(视图、光标c、int-columnIndex) { 开关(view.getId()) { 案例R.id.name: CheckedTextView ctv=(CheckedTextView)视图; ctv.setText(c.getString(2)); 如果(c.getInt(5)==0 | | c.getInt(4)=-1) { ctv.setPaintFlags(ctv.getPaintFlags()| Paint.STRIKE_-THRU_-TEXT_-FLAG); ctv.setChecked(假); } 其他的 { ctv.setPaintFlags(ctv.getPaintFlags()&(~Paint.STRIKE_-THRU_-TEXT_-FLAG)); ctv.setChecked(真); } 返回true; 案例R.id.info: 如果(c.getInt(4)!=-1) { (TextView)view.setText(Utility.MONTH_NAME[c.getInt(3)-1]+“”+Integer.toString(c.getInt(4)); } 其他的 { ((文本视图)视图).setText(“点击并按住以手动输入”); } 返回true; 案例R.id.profile\u图片: 如果(!已加载) 返回true; ((ImageView)视图).setImageBitmap(Utility.model.getImage( Long.toString(c.getLong(1)),getURL(c.getLong(1)); 返回true; } 返回false; } } 专用void show_对话框() { //日期选择器代码 好的。setOnClickListener(新建按钮。OnClickListener(){ @凌驾 公共void onClick(视图v) { ContentValues cv=新的ContentValues(); cv.put(月、月变化); cv.put(日、日变化); update(表名称包括,cv,_ID+“=?”,新字符串[]{Integer.toString(pos)}); //getLoaderManager().restartLoader(0,null,NewFriendsListFragment.this); //我试着调用重新启动加载程序,但没有,当我检查时 //结果是sqlite数据库没有被更新 responseHandler.sendEmptyMessage(1);//只是取消对话框 } }); dialog.show(); } @凌驾 创建选项菜单(菜单菜单,菜单充气机){ //放置一个用于搜索的操作栏项。 MenuItem item=menu.add(“搜索”); 设置图标(android.R.drawable.ic\u菜单\u搜索); item.setShowAsAction(菜单项始终显示为动作); View searchView=SearchViewCompat.newSearchView(getActivity()); if(searchView!=null){ SearchViewCompat.setOnQueryTextListener(searchView, 新OnQueryTextListenerCompat(){ @凌驾 公共布尔值onQueryTextChange(字符串filtext){ mCurFilter=!TextUtils.isEmpty(filtext)?filtext:null; getLoaderManager().restartLoader(0,null,NewFriendsListFragment.this); 返回true; } }); item.setActionView(searchView); } } @凌驾 公共视图单击(AdapterView arg0、视图arg1、整型arg2、长型arg3){ //TODO自动生成的方法存根 } },android,sqlite,actionbarsherlock,android-cursorloader,commonsware-cwac,Android,Sqlite,Actionbarsherlock,Android Cursorloader,Commonsware Cwac,我使用ActionBar Sherlock库中的SherlockListFragment来显示一个使用Commonware Loaderex sqlite游标加载程序的列表,evrything似乎工作正常,姓名、生日和个人资料图片都显示正常,但我似乎无法使用loader.update(…)更新表中的任何数据,我叫它的时候什么也没发生。 怎么了?您有: public class NewFriendsListFragment extends SherlockListFragment implemen

我使用ActionBar Sherlock库中的SherlockListFragment来显示一个使用Commonware Loaderex sqlite游标加载程序的列表,evrything似乎工作正常,姓名、生日和个人资料图片都显示正常,但我似乎无法使用loader.update(…)更新表中的任何数据,我叫它的时候什么也没发生。 怎么了?

您有:

public class NewFriendsListFragment extends SherlockListFragment implements 
 LoaderManager.LoaderCallbacks<Cursor> {

int monthchange, daychange;

Dialog dialog;

int pos;


CheckedTextView ctv_name;

private SimpleCursorAdapter mAdapter=null;

private SQLiteCursorLoader loader=null;

String mCurFilter;

private static Handler responseHandler;


boolean loaded=false;

@Override 
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    //some more stuff...

    setHasOptionsMenu(true);

    mAdapter = new FriendListSCA(getSherlockActivity().getApplicationContext(), 
            R.layout.friend_item, null,null, null, null, null, NAME),
            new String[]{NAME,MONTH,UID}, new int[]{R.id.name,R.id.info,R.id.profile_pic});
    setListAdapter(mAdapter);

    setListShown(false);

    registerForContextMenu(getListView());

    getLoaderManager().initLoader(0, null, this);

    responseHandler = new Handler() 
    {                               
      //handler code
    };     
}



public Loader<Cursor> onCreateLoader(int loaderId, Bundle args) {
    //loader code
    return(loader);
  }

  public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
          mAdapter.changeCursor(cursor);

          // Showin List
          if (isResumed()) {
              setListShown(true);
          } else {
              setListShownNoAnimation(true);
          }
  }

  public void onLoaderReset(Loader<Cursor> loader) {
    mAdapter.changeCursor(null);
  }

@Override
public boolean onContextItemSelected(android.view.MenuItem item) {
    AdapterContextMenuInfo info;
    try {
        info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
    } catch (ClassCastException e) {
        return false;
    }
    pos=info.position;

    switch (item.getItemId()) {

    case R.id.edit_item:

            show_dialog();

        return true;
    }
    return(super.onOptionsItemSelected(item));

}

@Override 
public void onListItemClick(ListView l, View v, final int position, long id) {      

            Log.e("onListItemClick","Inside onListItemClick");  
            ContentValues cv= new ContentValues();
//MORE CODE

            loader.update(TABLE_NAME_INCLUDE, cv, _ID+" = ?", new String[]{Integer.toString(position)});                

}



private class FriendListSCA extends SimpleCursorAdapter
{

public FriendListSCA(Context context, int layout, Cursor c,
        String[] from, int[] to) {
    super(context, layout, c, from, to,0); 
    setViewBinder(new FriendsListDataViewBinder()); 
}

}

public class FriendsListDataViewBinder implements SimpleCursorAdapter.ViewBinder 
{ 
//_ID + "," + UID+","+NAME+","+MONTH+","+DAY+","+WISH
@Override 
public boolean setViewValue(View view, Cursor c, int columnIndex) 
{ 

    switch (view.getId())
    {
    case R.id.name:
        CheckedTextView ctv= (CheckedTextView)view;
        ctv.setText(c.getString(2));
        if(c.getInt(5)==0 || c.getInt(4)==-1)
        {
            ctv.setPaintFlags(ctv.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
            ctv.setChecked(false);
        }
        else
        {
            ctv.setPaintFlags(ctv.getPaintFlags() & (~ Paint.STRIKE_THRU_TEXT_FLAG));
            ctv.setChecked(true);
        }

        return true; 

    case R.id.info:

        if(c.getInt(4)!=-1)
        {
            ((TextView)view).setText(Utility.MONTH_NAME[c.getInt(3)-1] + " " + Integer.toString(c.getInt(4)));
        }
        else
        {
            ((TextView)view).setText("Tap and hold to manually enter");
        }
        return true;
    case R.id.profile_pic:

        if(!loaded)
            return true;

        ((ImageView)view).setImageBitmap(Utility.model.getImage(
                Long.toString( c.getLong(1) ), getURL(c.getLong(1)) ));

        return true;
    }

  return false; 
}
}

private void show_dialog()
{
//DATE PICKER CODE

 okay.setOnClickListener(new Button.OnClickListener() {  
     @Override
     public void onClick(View v)
         {
            ContentValues cv=new ContentValues();
            cv.put(MONTH, monthchange);
            cv.put(DAY, daychange);
            loader.update(TABLE_NAME_INCLUDE, cv, _ID+" = ?" , new String[]{Integer.toString(pos)});
            //getLoaderManager().restartLoader(0, null, NewFriendsListFragment.this);
//I tried calling restart loader, but nothing, when I checked
//it turned out the sqlite database wasn't being updated

            responseHandler.sendEmptyMessage(1); //just dismisses dialog
         }
      });     
 dialog.show();
}



@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    // Place an action bar item for searching.
    MenuItem item = menu.add("Search");
    item.setIcon(android.R.drawable.ic_menu_search);
    item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    View searchView = SearchViewCompat.newSearchView(getActivity());
    if (searchView != null) {
        SearchViewCompat.setOnQueryTextListener(searchView,
                new OnQueryTextListenerCompat() {
            @Override
            public boolean onQueryTextChange(String filtext) {
                mCurFilter = !TextUtils.isEmpty(filtext) ? filtext : null;
                getLoaderManager().restartLoader(0, null, NewFriendsListFragment.this);
                return true;
            }
        });
        item.setActionView(searchView);
    }
}

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    // TODO Auto-generated method stub
}

}
这很可能是:<
loader.update(TABLE_NAME_INCLUDE, cv, _ID+" = ?", new String[]{Integer.toString(position)});           
loader.update(TABLE_NAME_INCLUDE, cv, _ID+" = ?", new String[]{Integer.toString(id)});