天天看點

android mysql 異步_Android-LoaderManager異步加載資料庫資料

packageliudeli.datastorage;importandroid.app.Activity;importandroid.app.LoaderManager;importandroid.content.ContentResolver;importandroid.content.ContentValues;importandroid.content.CursorLoader;importandroid.content.Loader;importandroid.database.Cursor;importandroid.net.Uri;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.ListAdapter;importandroid.widget.ListView;importandroid.widget.SimpleAdapter;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;public class LoaderActivity extendsActivity {privateLoaderManager loaderManager;privateListView listView;//通路内容提供者的Uir位址

private Uri uri = Uri.parse("content://db.ConnectMySQLiteOpenHelper3ContentProvider");

@Overrideprotected voidonCreate( Bundle savedInstanceState) {super.onCreate(savedInstanceState);

setContentView(R.layout.activity_loader);

loaderManager=getLoaderManager();loaderManager.initLoader(1, null, callbacks);

listView=findViewById(R.id.list_view);

}

private LoaderManager.LoaderCallbacks callbacks = new LoaderManager.LoaderCallbacks() {@Overridepublic Loader onCreateLoader(intid, Bundle args) {

CursorLoader cursorLoader= new CursorLoader(LoaderActivity.this);

cursorLoader.setUri(uri);

cursorLoader.setSortOrder(null);

cursorLoader.setSelectionArgs(null);

cursorLoader.setSelection(null);

cursorLoader.setProjection(new String[]{"name", "age"});//....

returncursorLoader;

}@Overridepublic void onLoadFinished(Loaderloader, Cursor cursor) {

List> list = new ArrayList<>();while(cursor.moveToNext()) {

Map mMap = new HashMap<>();

mMap.put("name", cursor.getString(cursor.getColumnIndex("name")));

mMap.put("age", cursor.getInt(cursor.getColumnIndex("age")));

list.add(mMap);

}

ListAdapter listAdapter=

new SimpleAdapter(LoaderActivity.this,

list,

android.R.layout.simple_list_item_2,new String[]{"name","age"}, //從哪裡來

new int[]{android.R.id.text1, android.R.id.text2}); //到哪裡去

listView.setAdapter(listAdapter);

}@Overridepublic void onLoaderReset(Loaderloader) {

}

};

public voidinsert(View view) {

ContentResolver contentResolver=getContentResolver();

ContentValues values= newContentValues();

values.clear();

values.put("name", "大民");

values.put("age", 99);

values.put("my_assets", "9000000");

contentResolver.insert(uri, values);loaderManager.restartLoader(3333, null, callbacks);

}

}