ExpandableListView 的事件响应

ExpandableListView中的每一级标题都是由很多组件实现的,那么如何设置这些组件的某些事件发生时的回调函数呢?

不光是每个标题的每个组件的回调函数,还有整个标题的事件的回调函数。

1.整个函数的回调函数:还没做

2.在继承了BaseExpandableListAdapter类的类中,有getClientView函数,在这个函数里,获得了子标题的每个组件,并设置他们的值,这个已经有的代码不用白不用,获得了这些组件的句柄,紧接着设置回调函数即可。代码如下:

public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView,
ViewGroup parent) {
// TODO Auto-generated method stub
int drugImage = (Integer) ((Map<String,Object>)getChild(groupPosition,childPosition)).get("drugimage");
final String drugNameText = (String) ((Map<String,Object>)getChild(groupPosition,childPosition)).get("drugnametext");
final String drugDetailText = (String) ((Map<String,Object>)getChild(groupPosition,childPosition)).get("drugdetailtext");

LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE);

LinearLayout layout = (LinearLayout) layoutInflater.inflate(R.layout.druglist, null);
ImageView drugImageView = (ImageView) layout.findViewById(R.id.drugimage);
TextView drugNameTextView = (TextView) layout.findViewById(R.id.drugnametext);
TextView drugDetailTextView = (TextView) layout.findViewById(R.id.drugdetailtext);

drugImageView.setImageResource(drugImage);
drugNameTextView.setText(drugNameText);
drugDetailTextView.setText(drugDetailText);

drugImageView.setOnClickListener(new OnClickListener(){


@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(context, TempActivity.class);

Bundle bundle = new Bundle();
bundle.putString("drugnametext", drugNameText);
bundle.putString("drugdetaitext", drugDetailText);

intent.putExtras(bundle);

context.startActivity(intent);
}

});

return layout;
}

在这里,设置了ImageView的回调函数,将两个TextView中的文字写入bundle,传到另一个Activity中。具体传递什么信息要看当时传入的是什么类型的数据。比如R.id.什么,就要看到底是什么类型,是long还是int还是double我也不知道,不过那就是intent和bundle的事了,不是这篇文章的内容了。

另外一个问题是当我连续传递两个String参数,即代码

Bundle bundle = new Bundle();
bundle.putString("drugnametext", drugNameText);
bundle.putString("drugdetaitext", drugDetailText);

intent.putExtras(bundle);

context.startActivity(intent);


中连续传递drugNameText和drugDetailText两个变量,但是接收时只能接受第一个,暂时还不知道为啥。不过我把字符变量写到一起了,到另一个Activity中在分割,暂时还不耽误事,如果有人能忍受我这篇文章看到这里的话,希望能给我回复,感激不尽。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值