PDA

View Full Version : نشان دادن عکس در expandable list view



1yaram
چهارشنبه 01 مرداد 1393, 16:29 عصر
آغا میخوام بدونم کد اینکه چه طور عکس های متنوع رو در لیست گروه ها نشون بدیم:متفکر:
مثل این تصویر121458

poorman
چهارشنبه 01 مرداد 1393, 20:38 عصر
دوست عزیز خب از همینجایی که این عکس رو برداشتید آموزشش هم گذاشته دیگه

شما باید برای Group و Child هر کدوم یک XML شخصی سازی شده بذارید که شامل imageView و یک تکست ویو باشه

بعد توی آداپتر expandableListView این layout ها رو تعریف میکنید و مقدار میدید، علاوه بر آرایه متن ها که به آداپتر میفرستید، یک آرایه عکس هم باید بفرستید ( از نوع int )

یا عکس ها رو ثابت توی آداپتر داشته باشید و با استفاده از سوئیچ مقدار بدید

omid_cr77
پنج شنبه 02 مرداد 1393, 00:41 صبح
دو راه داری یا با استفاده از سوییچ دونه دونه تعریف کنی یا تو دیتا بیس یه متد به عنوان تصویر تعریف کنی.اسم عکس را تو دیتا بیس بهش بدی و عکسا رو بریزس داخل پوشه drawable و با این کدی که پایین مینویسم در داخل listviewadapter فراخوانی کنی عکسا رو.راه دومیه آسون ترین راهه

omid_cr77
پنج شنبه 02 مرداد 1393, 00:55 صبح
ImageView img = (ImageView) view.findViewById(R.id.image1);
int imageResource = c.getResources().getIdentifier(database.getImage() ,
"drawable", c.getPackageName());
img.setImageResource(imageResource);



****rahnama:image1=ye doone imge
****rahnama:database=databasi ke dorost kardi(esme databaset)
****rahnama:getImage=methodiye ke akso tarif kardi to sakht database az jense Text
****rahnama:dawable=pooshe drawable

1yaram
پنج شنبه 02 مرداد 1393, 14:24 عصر
ImageView img = (ImageView) view.findViewById(R.id.image1);
int imageResource = c.getResources().getIdentifier(database.getImage() ,
"drawable", c.getPackageName());
img.setImageResource(imageResource);



****rahnama:image1=ye doone imge
****rahnama:database=databasi ke dorost kardi(esme databaset)
****rahnama:getImage=methodiye ke akso tarif kardi to sakht database az jense Text
****rahnama:dawable=pooshe drawable


ممنون از راهنمایی سادت ولی بازم نفهمیدم امتحان هم کردم نشد چون من دیتا بیس بلد نیستم
خب باز تلاش کردم و کد زیر رو تو آداپتور نوشتم البته هیچ چیز جدیدی تو اکتیویتی اصلی ننوشتم ببین این درسته

package com.mohammadzadeh.tagsuplikes;


import java.util.HashMap;
import java.util.List;


import android.content.Context;
import android.content.Intent;
import android.graphics.Typeface;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ImageView;
import android.widget.Switch;
import android.widget.TextView;

public class ExpandableListAdapter extends BaseExpandableListAdapter {

private Context _context;
public Context context;
private List<String> _listDataHeader; // header titles
// child data in format of header title, child title
private HashMap<String, List<String>> _listDataChild;


public ExpandableListAdapter(Context context, List<String> listDataHeader,
HashMap<String, List<String>> listChildData) {
this._context = context;
this._listDataHeader = listDataHeader;
this._listDataChild = listChildData;
}


@Override
public Object getChild(int groupPosition, int childPosititon) {
return this._listDataChild.get(this._listDataHeader.get(g roupPosition))
.get(childPosititon);
}

@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}

@Override
public View getChildView(int groupPosition, final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {

final String childText = (String) getChild(groupPosition, childPosition);

if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
convertView = infalInflater.inflate(R.layout.list_item, null);
}

TextView txtListChild = (TextView) convertView
.findViewById(R.id.lblListItem);

txtListChild.setText(childText);
return convertView;
}

@Override
public int getChildrenCount(int groupPosition) {
return this._listDataChild.get(this._listDataHeader.get(g roupPosition))
.size();
}

@Override
public Object getGroup(int groupPosition) {
return this._listDataHeader.get(groupPosition);
}

@Override
public int getGroupCount() {
return this._listDataHeader.size();
}

@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}

@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
String headerTitle = (String) getGroup(groupPosition);


if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
convertView = infalInflater.inflate(R.layout.list_group, null);
}
ImageView img = (ImageView) convertView.findViewById(R.id.image1);
if (convertView == null) {
switch (groupPosition) {
case 0:
img.setImageResource(R.drawable.audi_a4);
break;
case 1:
img.setImageResource(R.drawable.audi_q7);


break;
}
}



TextView lblListHeader = (TextView) convertView
.findViewById(R.id.lblListHeader);
lblListHeader.setTypeface(null, Typeface.BOLD);
lblListHeader.setText(headerTitle);


return convertView;
}



@Override
public boolean hasStableIds() {
return false;
}

1yaram
پنج شنبه 02 مرداد 1393, 14:29 عصر
ImageView img = (ImageView) view.findViewById(R.id.image1);
int imageResource = c.getResources().getIdentifier(database.getImage() ,
"drawable", c.getPackageName());
img.setImageResource(imageResource);



****rahnama:image1=ye doone imge
****rahnama:database=databasi ke dorost kardi(esme databaset)
****rahnama:getImage=methodiye ke akso tarif kardi to sakht database az jense Text
****rahnama:dawable=pooshe drawable


ا یه لحظه صبر کن درست شد ای ول باید if رو از اینجا میحذفیدم این کار کرد:

public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { String headerTitle = (String) getGroup(groupPosition);


if (convertView == null) {
LayoutInflater infalInflater = (LayoutInflater) this._context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE) ;
convertView = infalInflater.inflate(R.layout.list_group, null);
}
ImageView img = (ImageView) convertView.findViewById(R.id.image1);
switch (groupPosition) {
case 0:
img.setImageResource(R.drawable.audi_a4);
break;
case 1:
img.setImageResource(R.drawable.audi_q7);


break;
}

ruhollaharab
جمعه 31 مرداد 1393, 12:30 عصر
دوستان کسی میدونه چطوری همین کارو با یه ArrayList توی MainActivity انجام بدیم، بعد توی آداپتر رفرنس بدیم به این ArrayList؟؟