实例情况:ExbandableListView的父项带一个或两个按钮,点击实现相应功能。思路:在自定义的ExbandableListView适配器中的getGroupView()方法中,获取按钮控件,定义点击监听,在监听方法中通过Intent跳转至下一个Activity。
@Override
public View getGroupView(final int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
// 取得用于显示给定分组的视图。 这个方法仅返回分组的视图对象, 要想获取子元素的视图对象,
// 就需要调用 getChildView(int, int, boolean, View, ViewGroup)。
View v;
if (convertView == null) {
v = newGroupView(isExpanded, parent);
} else {
v = convertView;
}
bindGroupView(v, mGroupData.get(groupPosition), mGroupFrom, mGroupTo);
ImageView del = (ImageView) v.findViewById(R.id.b_delete);
ImageView update = (ImageView) v.findViewById(R.id.b_update);
final TextView tv = (TextView) v.findViewById(R.id.groupTextView);
int a = tv.getText().toString().trim().indexOf(".");
final String id = tv.getText().toString().trim().substring(0,a);
del.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Resource r = new Resource() ;
r.delete(id);
notifyDataSetChanged();
Intent intent = new Intent(mInflater.getContext(),Resource.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//因不是在Activity中跳转,加这句即可
notifyDataSetInvalidated();
mInflater.getContext().startActivity(intent);
}
});
update.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mInflater.getContext(),Update_resource.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("uid",id);
mInflater.getContext().startActivity(intent);
}
});
return v;
}