simpleadapterを使用してlistにbuttonのメッセージ応答を追加
2210 ワード
リストのitemにbuttonを追加する場合は、次の点に注意してください.
1.xmlファイルでbuttonに2つのプロパティを設定するには
buttonにこの2つの属性を設定しないと、buttonはitemの焦点を奪い、itemは動かなくなります.itemをクリックしたい場合はitem効果、buttonをクリックしてbutton効果をクリックしたい場合は、buttonのプロパティにこの2つを加えるとokになります.
私はsimpleadapterを使っています.buttonかどうかを先に判断する必要があります.コードは以下の通りです.
次にbuttonに応答時間を設定し、まずadapterのgetviewメソッドを継承します.
コードは次のとおりです.
メッセージ応答を追加することができます.注意:このbuttonのメッセージ応答はoncreate()関数で定義できません.buttonはitemのレイアウトファイルで定義されているため、すべてのitemのbuttonは1つのbuttonを共有しています.idは同じです.oncreateで定義すると、各itemのbuttonに定義することになります.これは不可能で、buttonオブジェクトを取得できないため、ポインタが間違っています.getviewでのみbuttonオブジェクトが得られます.
1.xmlファイルでbuttonに2つのプロパティを設定するには
android:focusable="false"
android:clickable="true"
buttonにこの2つの属性を設定しないと、buttonはitemの焦点を奪い、itemは動かなくなります.itemをクリックしたい場合はitem効果、buttonをクリックしてbutton効果をクリックしたい場合は、buttonのプロパティにこの2つを加えるとokになります.
私はsimpleadapterを使っています.buttonかどうかを先に判断する必要があります.コードは以下の通りです.
listadapter.setViewBinder(new ViewBinder(){
@Override
public boolean setViewValue(View view, Object data , String textRepresentation) {
// TODO Auto-generated method stub
if(view instanceof Button)
{
Button button=(Button)view;
return true;
}
return false;
}
});
次にbuttonに応答時間を設定し、まずadapterのgetviewメソッドを継承します.
コードは次のとおりです.
listadapter=new SimpleAdapter(this,newlist ,R.layout.user,new String[]{"title","group","photo","username"},new int []{R.id.title,R.id.group,R.id.photo,R.id.username}){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if(convertView==null){
convertView=View.inflate(HTTPRequestActivity.this, R.layout.user, null);
}
final Button button=(Button)convertView.findViewById(R.id.group);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String groupname=(String)button.getText();
}
});
return super.getView(position, convertView, parent);
}
};
メッセージ応答を追加することができます.注意:このbuttonのメッセージ応答はoncreate()関数で定義できません.buttonはitemのレイアウトファイルで定義されているため、すべてのitemのbuttonは1つのbuttonを共有しています.idは同じです.oncreateで定義すると、各itemのbuttonに定義することになります.これは不可能で、buttonオブジェクトを取得できないため、ポインタが間違っています.getviewでのみbuttonオブジェクトが得られます.