我创建了一个ExpandableList View
包含一些组项目和相应的子项目的项目。
我可以访问子视图,并在 和 的帮助下访问子视图groupPosition
属性childPosition
。
现在我必须在每个子视图上放置两个ImageButton
,并在单击每个子视图时触发不同的 Intent。
我尝试编写代码来onClickListeners
为每个图像按钮设置并获得相应的结果,但我在返回值方面遇到了困难,其中getChildView
只返回一个View
。
如何获得每次ImageButton
点击的响应?
我的代码如下:
public View getChildView (final int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent)
{
final View providbtn = super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent);
final View lecvidbtn = super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent);
final ImageButton providbtn1 = (ImageButton)providbtn.findViewById(R.id.provid);
final ImageButton lecvidbtn1 = (ImageButton)lecvidbtn.findViewById(R.id.lecvid);
//final View childItemClicked = super.getChildView(groupPosition, childPosition, isLastChild, convertView, parent);
//final ImageButton ib = (ImageButton)childItemClicked.findViewById(R.id.)
//ImageButton provid = (ImageButton)findViewById(R.id.provid);
providbtn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplication(), "Topic Proc video is: "+topic[groupPosition]+" and Chapter is "+chapter[groupPosition][childPosition], Toast.LENGTH_LONG).show();
flag = "p";
Bundle bundle = new Bundle();
bundle.putString("topic",topic[groupPosition] );
bundle.putString("chapter",chapter[groupPosition][childPosition] );
Intent goHome = new Intent(getApplicationContext(), VideoWeb.class);
goHome.putExtras(bundle);
startActivity(goHome);
}
});
lecvidbtn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplication(), "Topic Lec video is: "+topic[groupPosition]+" and Chapter is "+chapter[groupPosition][childPosition], Toast.LENGTH_LONG).show();
flag = "l";
Bundle bundle = new Bundle();
bundle.putString("topic",topic[groupPosition] );
bundle.putString("chapter",chapter[groupPosition][childPosition] );
Intent goHome = new Intent(getApplicationContext(), VideoWeb.class);
goHome.putExtras(bundle);
startActivity(goHome);
}
});
return lecvidbtn; //My confusion is here. How to capture the return value for any of the image buttons clicked above.?
}