注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

民主与科学

独立之人格,自由之思想

 
 
 

日志

 
 

ResourceCursorAdapter  

2010-06-02 16:25:55|  分类: 数据适配器 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 public abstract class
ResourceCursorAdapter
extends CursorAdapter
java.lang.Object
        android.widget.BaseAdapter
              android.widget.CursorAdapter
                    android.widget.ResourceCursorAdapter
Class Overview
An easy adapter that creates views defined in an XML file. 
You can specify the XML file that defines the appearance of the views.
 ResourceCursorAdapter是虚类,它继承于CursorAdapter,它实现了CursorAdapternewView方法
ViewnewView(Context context, Cursor cursor, ViewGroup parent)
Inflates view(s) from the specified XML file.
用户使用ResourceCursorAdapter必须继续它并实现以下函数:
Public Methods
abstract voidbindView(View view, Context context, Cursor cursor)
Bind an existing view to the data pointed to by cursor
关于
ResourceCursorAdapter的更多内容可以参考《CursorAdapter
示例1
import android.app.Activity;
import android.app.ListActivity;
import android.os.Bundle;
import android.os.Handler;
import android.content.Context;
import android.content.ContentValues;
import android.database.Cursor;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ListView;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CursorAdapter;
import android.widget.ResourceCursorAdapter;
import android.widget.TextView;
import android.provider.ContactsContract.Contacts;
import android.provider.ContactsContract.RawContacts;
import android.view.View.OnClickListener;     
import android.widget.Button; 
import android.util.Log;

public class HelloCursor extends ListActivity {
    private static String[] PROJECTION = new String[] { Contacts._ID,
            Contacts.DISPLAY_NAME };

    /** Called when the activity is first created. */
    @Override

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Cursor c = getContentResolver().query(Contacts.CONTENT_URI, PROJECTION,
                null, null, Contacts.DISPLAY_NAME + " COLLATE NOCASE");
        startManagingCursor(c);
        //MyCursorAdapter adapter = new MyCursorAdapter(this, R.layout.list_row, c);
        MyResourceCursorAdapter adapter = new MyResourceCursorAdapter(this, R.layout.list_row,
                c);

        this.setListAdapter(adapter);
        Button button = (Button)findViewById(R.id.Button01); 
        OnClickListener listener=new OnClickListener(){
            @Override    
            public void onClick(View v) {     
                cmd=CMD_ADD;     
                doAction();     
            }         
        };
        button.setOnClickListener(listener);
        Button button2 = (Button)findViewById(R.id.Button02); 
        OnClickListener listener2=new OnClickListener(){
            @Override    
            public void onClick(View v) {     
                cmd=CMD_DELETE_ALL;
                doAction();     
            }         
        };
        button2.setOnClickListener(listener2);
        mHandler = new Handler();
       
    }

    private String[] mStrings = { "hubin", "hudashi", "robin" };
    int cnt = 0;
     private Handler mHandler;
    int cmd=0;
    final int CMD_ADD=1;
    final int CMD_DELETE_ALL=2;
    class ContactThread implements Runnable {
        public void run() {
            //HelloCursor.this.getListView().invalidateViews();
            if(cmd==CMD_ADD)
            {
            addContacts();
            }
            else if (cmd==CMD_DELETE_ALL)
            {
                dealAllContacts();
            }
            
            cnt++;
        }
    }
    void addContacts()
    {
        int nStringLength = mStrings.length;
        int randomNumber = 0;
        ContentValues newValues = new ContentValues();
        String tempString = null;
        randomNumber = (int) (Math.random() % 10);
        for (int i = 0; i < nStringLength; i++) {
            tempString = mStrings + cnt + randomNumber;
            newValues.put(Contacts.DISPLAY_NAME, tempString);
            getContentResolver().insert(RawContacts.CONTENT_URI, newValues);
            newValues.clear();

        }
        Log.i("hubin","add");
    }
    void dealAllContacts()
    {
        getContentResolver().delete(RawContacts.CONTENT_URI, null, null);
        Log.i("hubin","delete");
    }
    ContactThread contactDealer=new ContactThread();
    void doAction()
    {
         mHandler.post(contactDealer);
    }
}
class MyResourceCursorAdapter extends ResourceCursorAdapter {
    public MyResourceCursorAdapter(Context context, int resource, Cursor cursor) {
        super(context,resource,cursor);
    }
    
public View newView(Context context, Cursor cursor, ViewGroup parent) {
        return super.newView(context, cursor, parent);
    }
    
@Override
    public void bindView(View view, Context context, Cursor cursor) {
        Log.i("hubin","bind"+view);
        TextView nameView = (TextView) view;
        // Set the name
        nameView.setText(cursor
                .getString(cursor.getColumnIndex("DISPLAY_NAME")));
    }

}
class MyCursorAdapter extends CursorAdapter {
    Context  context=null;
    int viewResId;
    
public MyCursorAdapter(Context context, int resource, Cursor cursor) {
        super(context,cursor);
        viewResId=resource;
    }
   
 public View newView(Context context, Cursor cursor, ViewGroup parent) {
        
        TextView view =null;
       LayoutInflater vi = null;
       vi = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
       view =(TextView)vi.inflate(viewResId, parent, false);
     
 //v =(TextView)vi.inflate(textViewResourceId,null);
       Log.i("hubin","newView"+view);
        return view;
    }
    @Override
    public void bindView(View view, Context context, Cursor cursor) {
        Log.i("hubin","bind"+view);
        TextView nameView = (TextView) view;
        
// Set the name
        nameView.setText(cursor
                .getString(cursor.getColumnIndex("DISPLAY_NAME")));
    }

}
  评论这张
 
阅读(2127)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017