Я следую приведенному ниже коду, чтобы создать expandablistView в android с нашим макетом xml. Он работает нормально, но я не знаю, как я могу изменить изображение. Если я использую изображение в дочернем/групповом макете? Я уже сделал код для добавления ImageView в дочерние/групповые представления, но как я могу обновить/изменить изображение, опубликованное с помощью ImageView в дочернем/групповом представлении. . Заранее спасибо за руководство
открытый класс GundamExpAdapter extends BaseExpandableListAdapter { /------------ Поля -------------- -------------/
private final HashMap<String, ArrayList<String>> myData = new HashMap<String, ArrayList<String>>();
private final HashMap<Integer, String> lookUp = new HashMap<Integer, String>();
private final Context context;
/*-------------------------- Public --------------------------*/
public GundamExpAdapter(final Context con)
{
context = con;
}
public boolean AddGroup(final String groupName, final ArrayList<String> list)
{
final ArrayList<String> prev = myData.put(groupName, list);
if (prev != null)
return false;
lookUp.put(myData.size() - 1, groupName);
notifyDataSetChanged();
return true;
}
@Override
public Object getChild(int groupPos, int childPos)
{
if (lookUp.containsKey(groupPos))
{
final String str = lookUp.get(groupPos);
final ArrayList<String> data = myData.get(str);
return data.get(childPos);
}
return null;
}
@Override
public long getChildId(int groupPos, int childPos)
{
return 0;
}
@Override
public View getChildView(int groupPos, int childPos, boolean isLastChild,
View convertView, ViewGroup parent)
{
LinearLayout linear = new LinearLayout(context);
final LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
TextView text = new TextView(context);
// Indent
final String str = "\t\t\t" + (String)getChild(groupPos, childPos);
linear = new LinearLayout(context);
linear.setOrientation(LinearLayout.VERTICAL);
text.setLayoutParams(params);
text.setText(str);
linear.addView(text);
return linear;
}
@Override
public int getChildrenCount(int groupPos)
{
if (lookUp.containsKey(groupPos))
return myData.get(lookUp.get(groupPos)).size();
return 0;
}
@Override
public Object getGroup(int groupPos)
{
if (lookUp.containsKey(groupPos))
return myData.get(lookUp.get(groupPos));
return null;
}
@Override
public int getGroupCount()
{
return myData.size();
}
@Override
public long getGroupId(int groupPos)
{
return 0;
}
@Override
public View getGroupView(int groupPos, boolean isExpanded, View convertView, ViewGroup parent)
{
LinearLayout linear = new LinearLayout(context);
final LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
TextView text = new TextView(context);
// Push the group name slightly to the right for drop down icon
final String str = "\t\t" + lookUp.get(groupPos);
linear = new LinearLayout(context);
linear.setOrientation(LinearLayout.VERTICAL);
text.setLayoutParams(params);
text.setText(str);
text.setTextSize(18.0f);
linear.addView(text);
return linear;
}
@Override
public boolean hasStableIds()
{
return false;
}
@Override
public boolean isChildSelectable(int groupPos, int childPos)
{
return false;
}
} И его активность, как показано ниже
public class Main extends ExpandableListActivity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
//setContentView(R.layout.main);
GundamExpAdapter gea = new GundamExpAdapter(this);
ArrayList<String> models = new ArrayList<String>();
models.add("NZ 666 Kshatriya");
models.add("Unicorn");
models.add("Sinanju");
gea.AddGroup("Unicorn", models);
models = new ArrayList<String>();
models.add("DeathScythe");
models.add("Altron");
models.add("HeavyArms");
models.add("SandRock");
models.add("Epyon");
models.add("ZERO");
gea.AddGroup("Wing", models);
setListAdapter(gea);
ExpandableListView elv = getExpandableListView();
elv.setTextFilterEnabled(true);
//listview.setOnItemClickListener(OnClickingListItem());
}
}