J'ai le code source suivant, ceci est une liste extensible, il a une liste d'enfants, qui a une certaine vue comme bouton Image, bouton Image, je veux faire la gestion des événements sur ces vues. s'il vous plaît me fournir le code source pour ce qui suit.Accès à la vue Image dans la liste des enfants de la liste extensible
La classe publique ExpList étend ExpandableListActivity { ImageView imageView, heart; Voir la vue; ArrayList count = new ArrayList(); // contexte Contexte privé; ExpandableListAdapterDemo madapter; finale nuances de cordes statiques [] [] = {// nuances de gris { "Episode1", "Episode1", "Episode1", "Episode1", "Episode1"}, // Shades of blue { « Episode2 " "Episode2", "Episode2", "Episode2", "Episode2", "Episode2"}, {
"Episode3", "Episode3", "Episode3"}, // nuances de rouge {" Episode4 "," Episode4 "," Episode4 "," Episode4 "}, {" Episode5 "," Episode5 "," Episode5 "," Episode5 "}, {" Episode6 "," Episode6 "," Episode6 "," Episode6 " "," Episode6 ", " Episode6 "}, {" Episode7 "," Episode7 "," Episode7 "," Episode7 "," Episode7 ", "Episode7"}, {"Episode8", "Episode8", "Episode8", "Episode8", "Episode8"}, {"Épisode 9", "Épisode 9", "Épisode 9", "Épisode 9", "Épisode 9" , "Episode9", "Episode9"}, { "Episode10", "Episode10", "Episode10", "Episode10", "Episode10", "Episode10", "Episode10", "Episode10"}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
Log.i("ARRy lentgh_____________", " " + shades.length);
for (int n = 0; n < shades.length; n++) {
count.add(Integer.toString(shades[n].length));
Log.i("item y lentgh_____________", " " + shades[n].length);
}
for (int n = 0; n < count.size(); n++) {
Log.i("List Elements are_____________", " " + count.get(n));
// count.add(Integer.toString(shades[n].length));
}
madapter= new ExpandableListAdapterDemo(this,createGroupList(),createChildList());
SimpleExpandableListAdapter expListAdapter = new SimpleExpandableListAdapter(
this, createGroupList(), // groupData describes the first-level
// entries
R.layout.parent_row, // Layout for the first-level entries
new String[] { "count" }, // Key in the groupData maps to
// display
new int[] { R.id.episode_count }, // Data under "colorName" key
// goes into this TextView
createChildList(), // childData describes second-level entries
R.layout.child_row, // Layout for second-level entries
new String[] { "shadeName" }, // Keys in childData maps to
// display
new int[] { R.id.childname } // Data under the keys above go
// into these TextViews
);
setListAdapter(expListAdapter);
final ExpandableListView exlv = this.getExpandableListView();
Log.i("exlv.getWidth():widthhhhhhhhh", "" + exlv.getWidth() + 50);
exlv.setIndicatorBounds(exlv.getWidth() + 30, exlv.getWidth() + 520);
exlv.setOnGroupExpandListener(new OnGroupExpandListener() {
@Override
public void onGroupExpand(int arg0) {
// TODO Auto-generated method stub
Log.i("Group Expand id is ", " " + exlv.getChildAt(arg0)+"Count is "+exlv.getChildCount()
+ " ");
LinearLayout linearLayout= (LinearLayout) exlv.getChildAt(arg0);
//LinearLayout linearLayout= (LinearLayout)findViewById(R.layout.child_row);
Log.i("Linear layout is ", " " + linearLayout
+ " ");
imageView= (ImageView)linearLayout.findViewById(R.id.imageView2);
Log.i("Image view id is ", " " + imageView
+ " ");
}
});
exlv.setOnGroupClickListener(new OnGroupClickListener() {
@Override
public boolean onGroupClick(ExpandableListView arg0, View arg1,
int arg2, long arg3) {
LinearLayout linearLayout= (LinearLayout) arg0.getChildAt(arg2);
imageView= (ImageView)linearLayout.findViewById(R.id.imageView2);
Log.i("Image view id is ", " " + imageView
+ " ");
Log.i("View is", ";;;;;;;;;;;; " + arg1.findViewById(R.id.imageView2)
+ " layout "+linearLayout+"image id on group "+imageView);
Toast.makeText(getBaseContext(), "Group clicked ",
Toast.LENGTH_SHORT).show();
return false;
}
});
exlv.setOnChildClickListener(new OnChildClickListener() {
public boolean onChildClick(ExpandableListView arg0, View arg1,
int arg2, int arg3, long arg4) {
Toast.makeText(ExpList.this,
"Child ItemClicked " + arg2 + " " + arg3,
Toast.LENGTH_SHORT).show();
imageView = (ImageView)arg1.findViewById(R.id.imageView2);
Log.i("ImageView Value "," hi "+imageView.toString());
imageView.setOnClickListener(new OnClickListener() {
@Override public void onClick(View arg0) { // TODO Auto-generated
Intent intent = new Intent(ExpList.this,DemoActivity.class);
startActivity(intent);
} });
// TODO Auto-generated method stub
return false;
}
});
/*
* imageView.setOnClickListener(new OnClickListener() {
*
* @Override public void onClick(View arg0) { // TODO Auto-generated
* method stub Intent intent = new
* Intent(ExpList.this,DemoActivity.class); startActivity(intent); } });
*/
for (int n = 0; n < count.size(); n++) {
Log.i("Values of episode is ", " " + count.get(n));
}
}
/**
* Creates the group list out of the colors[] array according to the
* structure required by SimpleExpandableListAdapter. The resulting List
* contains Maps. Each Map contains one entry with key "colorName" and value
* of an entry in the colors[] array.
*/
private List createGroupList() {
ArrayList result = new ArrayList();
Log.i("size of count is", " " + count.size());
for (int i = 0; i < shades.length; i++) {
HashMap m = new HashMap();
m.put("count", count.get(i));
result.add(m);
}
return result;
}
/**
* Creates the child list out of the shades[] array according to the
* structure required by SimpleExpandableListAdapter. The resulting List
* contains one list for each group. Each such second-level group contains
* Maps. Each such Map contains two keys: "shadeName" is the name of the
* shade and "rgb" is the RGB value for the shade.
*/
private List createChildList() {
ArrayList result = new ArrayList();
Log.i("two dim Array Size is ", " Size is " + shades.length);
for (int i = 0; i < shades.length; ++i) {
// Second-level lists
ArrayList secList = new ArrayList();
for (int j = 0; j < shades[i].length; j++) {
HashMap child = new HashMap();
child.put("shadeName", shades[i][j]);
secList.add(child);
}
result.add(secList);
}
return result;
}
public class ExpandableListAdapterDemo extends BaseExpandableListAdapter {
@Override
public boolean areAllItemsEnabled() {
return true;
}
private Context context;
private ArrayList<String> groups;
private ArrayList<ArrayList> children;
public ExpandableListAdapterDemo(Context context, List groups, List chiildren)
{
this.context = context;
this.groups = (ArrayList<String>) groups;
this.children = (ArrayList<ArrayList>) chiildren;
}
/**
* A general add method, that allows you to add a Vehicle to this list
*
* Depending on if the category opf the vehicle is present or not, the
* corresponding item will either be added to an existing group if it
* exists, else the group will be created and then the item will be
* added
*
* @param vehicle
*/
@Override
public Object getChild(int groupPosition, int childPosition) {
return children.get(groupPosition).get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
// Return a child view. You can load your custom layout here.
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
ImageView tv = (ImageView) convertView
.findViewById(R.id.imageView2);
tv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
Log.i("hiiiiiiiiiiiiiiiii","image clicked");
Intent intent = new Intent(ExpList.this, DemoActivity.class);
startActivity(intent);
}
});
return convertView;
}
@Override
public int getChildrenCount(int groupPosition) {
return children.get(groupPosition).size();
}
@Override
public Object getGroup(int groupPosition) {
return groups.get(groupPosition);
}
@Override
public int getGroupCount() {
return groups.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
// Return a group view. You can load your custom layout here.
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
// String group = (String) getGroup(groupPosition);
return convertView;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int arg0, int arg1) {
return true;
}
}
}
o_O omg. D'abord je ne comprends pas du tout, que veux-tu? Et je ne comprends pas le upvote :( – Tima
je veux accéder à la vue de la liste des enfants sur l'événement de clic de la liste des parents. – Himanshu