Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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
如何在android中刷新数据库,然后将新数据放入SimpleCorsOrAdapter?_Android_Sqlite_Refresh_Simplecursoradapter - Fatal编程技术网

如何在android中刷新数据库,然后将新数据放入SimpleCorsOrAdapter?

如何在android中刷新数据库,然后将新数据放入SimpleCorsOrAdapter?,android,sqlite,refresh,simplecursoradapter,Android,Sqlite,Refresh,Simplecursoradapter,Mainactivity,我在其中检查刷新按钮的单击 @Override public boolean onOptionsItemSelected(MenuItem item) { // Will close the drawer if the home button is pressed if (drawerToggle.onOptionsItemSelected(item)) { return true; } switch (item.ge

Mainactivity,我在其中检查刷新按钮的单击

 @Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Will close the drawer if the home button is pressed
    if (drawerToggle.onOptionsItemSelected(item)) {
        return true;
    }

    switch (item.getItemId()) {
        case R.id.search:
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.FROYO) {
                return false;
            } else {
                // Legacy search mode for Eclair
                onSearchRequested();
                return true;
            }
        case R.id.refresh:
            startDownloadSchedule();
            // TODO: resolve this
            Toast.makeText(getApplication(), "Updating database", Toast.LENGTH_SHORT).show();
            return true;
    }
    return false;
}

private void startDownloadSchedule() {

    progressBar.clearAnimation();
    progressBar.setIndeterminate(true);
    progressBar.setProgress(100);
    progressBar.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, android.R.anim.fade_out));
    progressBar.setMax(100);
    progressBar.setVisibility(View.VISIBLE);
//JsonToDatabase gets data from google sheets in json format and then saves it in a database
    JsonToDatabase dataDownload = new JsonToDatabase(getApplicationContext());
    dataDownload.setOnJsonToDatabaseCallback(new JsonToDatabase.JsonToDatabaseCallback() {

        @Override
        public void onDataLoaded() {
            Toast.makeText(getApplication(), "done updating", Toast.LENGTH_SHORT).show();
            progressBar.setVisibility(View.GONE);
            TracksListFragment tracksListFragment1 = new TracksListFragment();
            tracksListFragment1.onCreate(new Bundle());
        }


    });
    dataDownload.startDataDownload();
  }
TracklistFragment.class(这是我要刷新其数据的活动)

}


我只是被困在如何显示新刷新的数据。我已检查数据是否已下载。任何帮助都将不胜感激。提前感谢。

对数据库进行版本设置。为数据库添加SharedReferences,并在每次添加新数据时递增,然后从Open helper调用updateDb

public class TracksListFragment extends SmoothListFragment {
//public String[] columns;
//public int[] to;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    displaydata();


}

public void displaydata() {
   String[] columns = new String[]{DatabaseHelper.TABLE_COLUMN_NAME, DatabaseHelper.TABLE_COLOUMN_INFORMATION};
    // THE XML DEFINED VIEWS WHICH THE DATA WILL BE BOUND TO
    int[] to = new int[]{R.id.textView_track_title, R.id.textView_track_information};
    DatabaseManager db = DatabaseManager.getInstance();
    if (getActivity() != null) {
        SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(
                getActivity(), R.layout.list_tracks, db.getTracks(), columns, to, CursorAdapter.NO_SELECTION);
        setListAdapter(mAdapter);
        Toast.makeText(getActivity(),"display data",Toast.LENGTH_SHORT).show();

    }

}

@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    String text = ((TextView) v.findViewById(R.id.textView_track_title)).getText().toString();
    Intent intent = new Intent(getActivity(), TrackActivity.class);
    intent.putExtra("TRACK", text);
    startActivity(intent);
}

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    setEmptyText("No data present");
}