3 数据绑定
EXT-ALIGN: left”>有些Viewgroups会有UI。这些对象通常是AdapterView类的子类.例如包括图库和列表视图,它们具有两个共同的职责:
填充布局数据
处理用户操作
充布局数据
EXT-ALIGN: left”>填充布局数据通常通过把这个类绑定到一个Adapter来完成,Adapter从某个地方获取它的数据,或者是代码提供的一个列表,或者是来自设备数据库的查询结果。
//GetaSpinnerandbindittoanArrayAdapterthat
//referencesaStringarray.
Spinners1=(Spinner)findViewById(R.id.spinner1);
ArrayAdapteradapter=ArrayAdapter.createFromResource(
this,R.array.colors,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
//LoadaSpinnerandbindittoadataquery.
privatestaticString[]PROJECTION=newString[]{
People._ID,People.NAME
};
Spinners2=(Spinner)findViewById(R.id.spinner2);
Cursorcur=managedQuery(People.CONTENT_URI,PROJECTION,null,null);
SimpleCursorAdapteradapter2=newSimpleCursorAdapter(this,
android.R.layout.simple_spinner_item,//Useatemplate
//thatdisplaysa
//textview
cur,//Givethecursortothelistadatper
newString[]{People.NAME},//MaptheNAMEcolumninthe
//peopledatabaseto…
newint[]{android.R.id.text1});//The”text1″viewdefinedin
//theXMLtemplate
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter2);
//referencesaStringarray.
Spinners1=(Spinner)findViewById(R.id.spinner1);
ArrayAdapteradapter=ArrayAdapter.createFromResource(
this,R.array.colors,android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s1.setAdapter(adapter);
//LoadaSpinnerandbindittoadataquery.
privatestaticString[]PROJECTION=newString[]{
People._ID,People.NAME
};
Spinners2=(Spinner)findViewById(R.id.spinner2);
Cursorcur=managedQuery(People.CONTENT_URI,PROJECTION,null,null);
SimpleCursorAdapteradapter2=newSimpleCursorAdapter(this,
android.R.layout.simple_spinner_item,//Useatemplate
//thatdisplaysa
//textview
cur,//Givethecursortothelistadatper
newString[]{People.NAME},//MaptheNAMEcolumninthe
//peopledatabaseto…
newint[]{android.R.id.text1});//The”text1″viewdefinedin
//theXMLtemplate
adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s2.setAdapter(adapter2);
注意:使用CursorAdapter时,必须有People._ID,否则将会发生异常。
处理用户操作Android通过设置类的AdapterView.OnItemClickListener成员到一个监听者并捕捉用户的操作事件,来处理用户的操作。
//Createamessagehandlingobjectasananonymousclass.
privateOnItemClickListenermMessageClickedHandler=newOnItemClickListener(){
publicvoidonItemClick(AdapterViewparent,Viewv,intposition,longid)
{
//Displayamessagebox.
showAlert(”You’vegotanevent”,”Clickedme!”,”ok”,false);
}
};
//NowhookintoourobjectandsetitsonItemClickListenermember
//toourclasshandlerobject.
mHistoryView=(ListView)findViewById(R.id.accept_button);
mHistoryView.setOnItemClickListener(mMessageClickedHandler);
privateOnItemClickListenermMessageClickedHandler=newOnItemClickListener(){
publicvoidonItemClick(AdapterViewparent,Viewv,intposition,longid)
{
//Displayamessagebox.
showAlert(”You’vegotanevent”,”Clickedme!”,”ok”,false);
}
};
//NowhookintoourobjectandsetitsonItemClickListenermember
//toourclasshandlerobject.
mHistoryView=(ListView)findViewById(R.id.accept_button);
mHistoryView.setOnItemClickListener(mMessageClickedHandler);