public class HelloWorld {
public class MainActivity extends Activity implements LoaderCallbacks{
ListFragment listFragment = null;
SimpleCursorAdapter simpleCursorAdapter = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listFragment = new ListFragment(){
//實現ListFargmnt 點選時反應
@Override
public void onListItemClick(ListView l, View v, int position,
long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, position, id);
Log.d("Howard", "onItemSelected position:"+position);
}
};
simpleCursorAdapter =
new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1, null,
new String[]{"AA"},
new int[]{android.R.id.text1}, 0);
listFragment.setListAdapter(simpleCursorAdapter);
getFragmentManager().beginTransaction().
add(R.id.container,
listFragment, "test").commit();
getLoaderManager().initLoader(0, null, this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
//自訂一個MYCursor 需extends AbstractCursor
private class MYCursor extends AbstractCursor{
List names = new ArrayList();
public MYCursor(){
for(int i =0 ;i < 100;i++){
names.add("howard:"+i);
}
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return names.size();
}
@Override
public String[] getColumnNames() {
// TODO Auto-generated method stub
//_id 實作在getLong(int column)
//_id必須要的欄位不然會出錯
return new String[]{"_id","AA"};
}
@Override
public String getString(int column) {
// TODO Auto-generated method stub
return names.get(this.getPosition());
}
@Override
public short getShort(int column) {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getInt(int column) {
// TODO Auto-generated method stub
Log.d("Howard", "getInt:"+column);
return 0;
}
@Override
public long getLong(int column) {
// TODO Auto-generated method stub
return 0;
}
@Override
public float getFloat(int column) {
// TODO Auto-generated method stub
return 0;
}
@Override
public double getDouble(int column) {
// TODO Auto-generated method stub
return 0;
}
@Override
public boolean isNull(int column) {
// TODO Auto-generated method stub
return false;
}
}
//非UI執行緒
@Override
public Loader onCreateLoader(int id, Bundle args) {
// TODO Auto-generated method stub
//建立一個CursorLoader 並複寫loadInBackground 回傳一個自訂的Cursor
CursorLoader cusorLoader =
new CursorLoader(this){
@Override
public Cursor loadInBackground() {
// TODO Auto-generated method stub
Log.d("Howard", "Thread Name loadInBackground:"+
Thread.currentThread().getName());
return new MYCursor();
}
};
return cusorLoader;
}
// 在Android UI執行緒
@Override
public void onLoadFinished(Loader loader, Cursor data) {
// TODO Auto-generated method stub
Log.d("Howard", "Thread onLoadFinished:"+
Thread.currentThread().getName());
simpleCursorAdapter.swapCursor(data);
}
@Override
public void onLoaderReset(Loader loader) {
// TODO Auto-generated method stub
simpleCursorAdapter.swapCursor(null);
}
}
開這網站的目的是發現有很多人想了解電腦相關資訊,補習費用也不便宜,下了班很累想休息一下時間無法配合於是想分享我所學 未來會包含課程規劃會有: 程式語言上:Java、C#、PHP.. 手機設計:Android,、ObjectC 認證包含:SCJP、SCWCD、LPI1~LPI2.... 網頁設計:HTML5、JavaScript.... 陸陸續續會再增加! 以上課程都是我本人教學如有任何問題可在此留言我會答覆您的
HTML/JavaScript小工具
HTML/JavaScript小工具
2014年6月29日 星期日
自定Cursor使用於LoaderManager
訂閱:
文章 (Atom)