Android 使用SQL Lite DB将ListView活动转换为ListFragment

Android 使用SQL Lite DB将ListView活动转换为ListFragment,android,listview,sqlite,android-fragments,android-listfragment,Android,Listview,Sqlite,Android Fragments,Android Listfragment,我很难将工作的ListView从我创建的另一个应用程序转换为ListFragment 我已经摆脱了大部分错误,但仍有一些错误困扰着我。我已经评论了战神,我在哪里得到了错误以及它们是什么 谁能看看这个,告诉我我错过了什么 谢谢 package com.mycomp.myapp; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOE

我很难将工作的ListView从我创建的另一个应用程序转换为ListFragment

我已经摆脱了大部分错误,但仍有一些错误困扰着我。我已经评论了战神,我在哪里得到了错误以及它们是什么

谁能看看这个,告诉我我错过了什么

谢谢

package com.mycomp.myapp;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import android.app.Dialog;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.app.ListFragment;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnClickListener;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

import com.mycomp.myapp.contentprovider.TT_MilageContentProvider;
import com.mycomp.myapp.database.TT_MilageTable;

public class MilageFragment extends ListFragment implements LoaderManager.LoaderCallbacks<Cursor> {

        private static final int ACTIVITY_CREATE = 0;
        private static final int ACTIVITY_EDIT = 1;
        private static final int DELETE_ID = Menu.FIRST + 1;
        private SimpleCursorAdapter adapter;
        private static int dividerHeight = 2; 

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            fillData();
            registerForContextMenu(getListView());
        }

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {             
                View rootView = inflater.inflate(R.layout.milage, container, false);
                ListView listView = (ListView) rootView.findViewById(R.id.list);
                return rootView;
        }

        public boolean onCreateOptionsMenu(Menu menu) {
            MenuInflater inflater = getActivity().getMenuInflater();
            inflater.inflate(R.menu.main, menu);
            return true;
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
            case R.id.insert:
              createItem();
              return true;
            }
            return super.onOptionsItemSelected(item);
        }

        public boolean onContextItemSelected(MenuItem item, Context context) {
            switch (item.getItemId()) {
            case DELETE_ID:
              AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
              Uri uri = Uri.parse(TT_MilageContentProvider.CONTENT_URI + "/" + info.id);
              context.getContentResolver().delete(uri, null, null);
              fillData();
              return true;
            }
            return super.onContextItemSelected(item);
        }




        // ***** IT'S TELLING ME TO REMOVE THE ARGUMENTS TO MATCH 'INTENT' ***** 
        //       new Intent(this, MilageDetailActivity.class);

        private void createItem() {
            Intent i = new Intent(this, MilageDetailActivity.class);
            startActivityForResult(i, ACTIVITY_CREATE);
        }






        // ***** IT'S TELLING ME TO REMOVE THE ARGUMENTS TO MATCH 'INTENT' ***** 
        //       new Intent(this, MilageDetailActivity.class);

        @Override
        public void onListItemClick(ListView l, View v, int position, long id) {
            super.onListItemClick(l, v, position, id);
            Intent i = new Intent(this, MilageDetailActivity.class);
            Uri todoUri = Uri.parse(TT_MilageContentProvider.CONTENT_URI + "/" + id);
            i.putExtra(TT_MilageContentProvider.CONTENT_ITEM_TYPE, todoUri);

            startActivityForResult(i, ACTIVITY_EDIT);
        }

        @Override
        public void onActivityResult(int requestCode, int resultCode, Intent intent) {
            super.onActivityResult(requestCode, resultCode, intent);
        }



          //  *******  The Error is.....
          // The constructor SimpleCursorAdapter(MilageFragment, int, null, String[], int[], int) is undefined on
          //    new SimpleCursorAdapter(this, R.layout.milage_row, null, from, to, 0);

        private void fillData() {
            String[] from = new String[] { TT_MilageTable.COLUMN_SUMMARY };
            int[] to = new int[] { R.id.label };

            getLoaderManager().initLoader(0, null, this);
            adapter = new SimpleCursorAdapter(this, R.layout.milage_row, null, from, to, 0);

            setListAdapter(adapter);
          }

        @Override
          public void onCreateContextMenu(ContextMenu menu, View v,
              ContextMenuInfo menuInfo) {
            super.onCreateContextMenu(menu, v, menuInfo);
            menu.add(0, DELETE_ID, 0, R.string.menu_delete);
          }




          //  *******  The Error is.....
          // The constructor CursorLoader(MilageFragment, Uri, String[], null, null, null) is undefined and to 
          // Remove Arguments to match 'CursorLoader(Context)'

        public Loader<Cursor> onCreateLoader(int id, Bundle args) {
            String[] projection = { TT_MilageTable.COLUMN_ID, TT_MilageTable.COLUMN_SUMMARY };
            CursorLoader cursorLoader = new CursorLoader(this, TT_MilageContentProvider.CONTENT_URI, projection, null, null, null);
            return cursorLoader;
        }

        public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
            adapter.swapCursor(data);
        }

        public void onLoaderReset(Loader<Cursor> loader) {
            adapter.swapCursor(null);
        }

        @Override
        public void onDestroy() {
              super.onDestroy();
              android.os.Process.killProcess(android.os.Process.myPid());
          }
        } 
package com.mycop.myapp;
导入java.io.File;
导入java.io.FileNotFoundException;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入android.app.Dialog;
导入android.app.ListActivity;
导入android.content.Context;
导入android.content.Intent;
导入android.content.SharedReferences;
导入android.database.Cursor;
导入android.net.Uri;
导入android.os.Bundle;
导入android.os.Environment;
导入android.support.v4.app.ListFragment;
导入android.support.v4.app.LoaderManager;
导入android.support.v4.content.CursorLoader;
导入android.support.v4.content.Loader;
导入android.view.ContextMenu;
导入android.view.ContextMenu.ContextMenuInfo;
导入android.view.view.OnClickListener;
导入android.view.LayoutInflater;
导入android.view.Menu;
导入android.view.MenuInflater;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView.AdapterContextMenuInfo;
导入android.widget.LinearLayout;
导入android.widget.ListView;
导入android.widget.SimpleCursorAdapter;
导入com.mycop.myapp.contentprovider.TT_MilageContentProvider;
导入com.mycop.myapp.database.TT_MilageTable;
公共类MilageFragment扩展ListFragment实现LoaderManager.LoaderCallbacks{
私有静态最终整数活动_CREATE=0;
私有静态最终整数活动_EDIT=1;
私有静态最终int DELETE_ID=Menu.FIRST+1;
专用SimpleCursorAdapter适配器;
专用静态int dividerHeight=2;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
fillData();
registerForContextMenu(getListView());
}
@凌驾
创建视图上的公共视图(布局充气机、视图组容器、捆绑包保存状态){
视图根视图=充气机。充气(R.layout.milage,container,false);
ListView ListView=(ListView)rootView.findViewById(R.id.list);
返回rootView;
}
公共布尔onCreateOptions菜单(菜单){
MenuInflater充气器=getActivity()。getMenuInflater();
充气机。充气(右菜单。主菜单,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
开关(item.getItemId()){
案例R.id.插入:
createItem();
返回true;
}
返回super.onOptionsItemSelected(项目);
}
公共布尔值onContextItemSelected(菜单项,上下文){
开关(item.getItemId()){
案例编号:
AdapterContextMenuInfo信息=(AdapterContextMenuInfo)项。getMenuInfo();
Uri=Uri.parse(TT_MilageContentProvider.CONTENT_Uri+“/”+info.id);
getContentResolver().delete(uri,null,null);
fillData();
返回true;
}
返回super.onContextItemSelected(项目);
}
//******它告诉我删除参数以匹配“意图”****
//新意图(此,MilageDetailActivity.class);
私有void createItem(){
意向i=新意向(此,MilageDetailActivity.class);
startActivityForResult(i,活动\创建);
}
//******它告诉我删除参数以匹配“意图”****
//新意图(此,MilageDetailActivity.class);
@凌驾
public void onListItemClick(列表视图l、视图v、整数位置、长id){
super.onListItemClick(左、右、位置、id);
意向i=新意向(此,MilageDetailActivity.class);
uritodouri=Uri.parse(TT_MilageContentProvider.CONTENT_Uri+“/”+id);
i、 putExtra(TT_MilageContentProvider.CONTENT_ITEM_TYPE,todoUri);
startActivityForResult(一,活动编辑);
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图){
super.onActivityResult(请求代码、结果代码、意图);
}
//*******错误是。。。。。
//构造函数SimpleCursorAdapter(MilageFragment,int,null,String[],int[],int)在上未定义
//新的SimpleCursorAdapter(this,R.layout.milage_行,null,from,to,0);
私有void fillData(){
String[]from=新字符串[]{TT\u MilageTable.COLUMN\u SUMMARY};
int[]to=newint[]{R.id.label};
getLoaderManager().initLoader(0,null,this);
adapter=new SimpleCursorAdapter(this,R.layout.milage_行,null,from,to,0);
setListAdapter(适配器);
}
@凌驾
public void onCreateContextMenu(ContextMenu,视图v,
上下文菜单信息(menuInfo){
super.onCreateContextMenu(menu,v,menuInfo);
menu.add(0,DELETE\u ID,0,R.string.menu\u DELETE);
}
//*******错误是。。。。。
//构造函数游标加载程序(MilageFragment,Uri,String[],null,null,null)未定义,无法加载
//删除与“游标加载程序(上下文)”匹配的参数
公共加载器onCreateLoader(int-id,Bundle-args){
String[]projection={TT_MilageTable.COLUMN_ID,TT_MilageTable.COLUMN_SUMMARY};
CursorLoader CursorLoader=new CursorLoader(this,TT_MilageContentProvider.CONTENT_URI,projection,null,
new Intent(this, MilageDetailActivity.class);
new Intent(getActivity(), MilageDetailActivity.class);