ListView
을 클릭하고 onItemClickListener
청취자에서 일부 작업을 수행하고 싶습니다. 또한 각 행에 다른 조작을 수행하는 버튼이 있습니다. 어떻게해야합니까?처리 방법 버튼 클릭 및 목록보기 단일 행을 클릭 하시겠습니까?
1
A
답변
4
이 작업을 시도 할 수 있습니다 :
public class buttonWithList extends ListActivity {
/** Called when the activity is first created. */
String[] items={"azhar","j"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setListAdapter(new bsAdapter(this));
}
public class bsAdapter extends BaseAdapter
{
Activity cntx;
public bsAdapter(Activity context)
{
// TODO Auto-generated constructor stub
this.cntx=context;
}
@Override
public int getCount()
{
// TODO Auto-generated method stub
return items.length;
}
@Override
public Object getItem(int position)
{
// TODO Auto-generated method stub
return items[position];
}
@Override
public long getItemId(int position)
{
// TODO Auto-generated method stub
return items.length;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
View row=null;
// TODO Auto-generated method stub
/*if(convertView==null)
{
}*/
LayoutInflater inflater=cntx.getLayoutInflater();
row=inflater.inflate(R.layout.row, null);
TextView tv=(TextView)row.findViewById(R.id.txtRow);
Button btn=(Button)row.findViewById(R.id.btnRow);
tv.setText(items[position]);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
onListItemClick(this, this, position, null);
}
});
return row;
}
protected void onListItemClick(OnClickListener onClickListener,
OnClickListener onClickListener2, int position, Object object) {
// TODO Auto-generated method stub
//Toast.makeText(this, items[position], 3000);
System.out.println(items[position]);
}
}
}
1
당신은 ListAdapter
를 구현해야합니다. 이 객체는 각 행의 요소를 정의합니다. 중독에서는 ViewBinder을 사용하여 행의 동작을 지정합니다. 따라서 모든 행에 버튼을 추가하고 ViewBinder
을 사용하여 onClickItemListener를 설정합니다.
데모 프로젝트 wiyh xml 코딩과 일종의 작업 onitemclicklistener 및 버튼 클릭을 제공 할 수 있습니까? – Hitesh