私は自分の画面にリストビューを持っています、すべてのリストアイテムは2つのテキストビューと1つのボタンを含んでいます。 ボタンをクリックすると、選択したリストの項目を取得してベクトルからデータを取得します。androidのリストビュー内のOnClick Listenerを設定する
これは私のリストカスタムアダプタです。しかし、私はそれを行う方法がわかりません。
private class CustomAdapter extends ArrayAdapter<ServicesItems> {
public CustomAdapter(Context context, int resource,
int textViewResourceId, List<ServicesItems> objects) {
super(context, resource, textViewResourceId, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
TextView item = null;
TextView description = null;
Button subNowBtn;
ServicesItems ii = getItem(position);
if (null == convertView) {
convertView = mInflater.inflate(
R.layout.list_of_servics_item_2, null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
// cat_name = holder.gettitle();
Resources resources = getResources();
ServicesItems bean1 = (ServicesItems) servicesVector
.elementAt(position);
String cat_name_str = bean1.getService_name().toString();
String descreption = bean1.getDescription().toString();
item = holder.getItem();
item.setText(bean1.getDescription());
description = holder.getDescription();
description.setText(bean1.getService_name());
subNowBtn=holder.getSubButton();
return convertView;
}
private class ViewHolder {
private View mRow;
private TextView description = null;
private TextView item = null;
private Button sub = null;
public ViewHolder(View row) {
mRow = row;
}
public TextView getDescription() {
if (null == description) {
description = (TextView) mRow
.findViewById(R.id.category_tv);
}
return description;
}
public TextView getItem() {
if (null == item) {
item = (TextView)
mRow.findViewById(R.id.descreption_tv);
}
return item;
}
public Button getSubButton(){
if(null==sub){
sub=(Button)findViewById(R.id.subscribe_now_btn);
}
return sub;
}
}
}
私はholder.getSubButton()この \t \t \tを追加しました。setOnClickListener(新OnClickListener() \t \t \t { \t \t \t @Override \t \t \tます。public void onClick(vを表示) \t \t \t { \t \t \t //何をしたい \t \t \t} \t \t \t}); しかし、それはnullポインタexcwを指す。 – Reham
私は私の答えを更新しました。 –
ありがとう、それは今動作します。 – Reham