子线程加载数据
2016-06-25 21:52
295 查看
package com.example.a05273; import java.io.File; import android.app.Activity; import android.app.AlertDialog; import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; import android.content.DialogInterface; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.support.v4.app.FragmentActivity; import android.support.v4.app.LoaderManager; import android.support.v4.app.LoaderManager.LoaderCallbacks; import android.support.v4.content.CursorLoader; import android.support.v4.content.Loader; import android.support.v4.widget.SimpleCursorAdapter; import android.view.View; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast; /** * 通过子线程加载数据 * 数据是在手机的内存中 * */ public class MainActivity extends FragmentActivity { private String url = "content://com.mma/student/";// url private ListView listview; private EditText ee; private ContentResolver resolver;// 客户端(访问服务端) private SimpleCursorAdapter adapter;// 适配器(数据库专用) private Cursor cursor;// 游标 private LoaderManager manager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); listview = (ListView) findViewById(R.id.listview);// 视图列表 ee=(EditText) findViewById(R.id.ee); manager=getSupportLoaderManager();//创建LoaderManager对象 adapter=new SimpleCursorAdapter(MainActivity.this,//创建适配器 android.R.layout.simple_list_item_2, null,//游标这里先为空 new String[]{"name","age"}, new int[]{android.R.id.text1,android.R.id.text2}, 0); listview.setAdapter(adapter); manager.initLoader(1, null, new MyLoader());//初始化Loader } public void mma(View view){ String name=ee.getText().toString(); Bundle bundle=new Bundle(); bundle.putString("name", name); manager.restartLoader(1, bundle, new MyLoader());//重启Loader } class MyLoader implements LoaderManager.LoaderCallbacks<Cursor>{ @Override//回调时会调用该方法 public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) { CursorLoader loader=null;//定义CursorLoader if(arg1==null){//编辑框没有输入时 loader=new CursorLoader(MainActivity.this, Uri.parse(url), null, null, null, null); }else{ String name=arg1.getString("name"); loader=new CursorLoader(MainActivity.this, Uri.parse(url), null, "name like ?", new String[]{name+"%"} , //模糊查找 null); } return loader; } @Override//上个方法返回值不为null时,会调用该方法 public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) { adapter.swapCursor(arg1); } @Override//退出活动时,会调用该方法 public void onLoaderReset(Loader<Cursor> arg0) { adapter.swapCursor(null); } } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories