2016-04-22 2 views
0

Здравствуйте, мне просто нужно закончить просмотр пользовательского списка, добавив массив изображений вдоль левой стороны. В настоящее время я добавил текст, который отлично работает, просто нужно добавить изображения. Я предполагаю, что вы настроили их как массив, подобный тому, что я уже сделал для текста, но просто нужно посмотреть, как это было сделано.Добавление изображений в пользовательские Listview

ListviewAdapter

public class ListViewAdapter extends ArrayAdapter<String> { 

String[] features={}; 
String[] clicks={}; 


Context c; 
LayoutInflater inflater; 




public ListViewAdapter(Context context, String[] features, String[] clicks) { 
    super(context, R.layout.custom_row, features); 

    this.c = context; 
    this.features = features; 
    this.clicks = clicks; 





} 

public class ViewHolder{ 

    TextView txtphone; 
    TextView txtcall; 


} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if(convertView == null){ 


     inflater= (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = inflater.inflate(R.layout.custom_row, null); 
    } 

    final ViewHolder holder = new ViewHolder(); 


    holder.txtphone = (TextView) convertView.findViewById(R.id.txtphone); 
    holder.txtcall= (TextView) convertView.findViewById(R.id.txtcall); 


    holder.txtphone.setText(features[position]); 
    holder.txtcall.setText(clicks[position]); 


    return convertView; 


} 
} 

Основная деятельность

String[] feature= {"Phone", "Email", "Website", "Opening Times"}; 
String[] click = {"click", "click", "click", "click", "click"}; 
int[] images ={R.drawable.ic_menu_gallery, R.drawable.ic_menu_send}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.contact_us); 



    contactUs = (ListView)findViewById(R.id.contactUsListView); 




    ListViewAdapter adapter = new ListViewAdapter(this,feature,click); 
    contactUs.setAdapter(adapter); 


    contactUs.setOnItemClickListener(new Itemlist()); 

} 

Как вы можете видеть, что я добавил два изображения в верхней части моей основной деятельности, но просто нужно немного советы применяя его к моему списку

+0

Вы Google это для этого .? –

+0

посмотреть эту ссылку. его помощь u..http: //www.vogella.com/tutorials/AndroidListView/article.html –

ответ

0

Сначала вам нужно добавить ImageView в ваш макет custom_row. Допустим, вы добавили его с id imgView. Вы должны иметь такое же количество изображений, что и предметы в вашем ListView. Теперь вам нужно изменить код адаптера следующего

public class ListViewAdapter extends ArrayAdapter<String> { 

String[] features={}; 
String[] clicks={}; 
int[] images={}; 


Context c; 
LayoutInflater inflater; 




public ListViewAdapter(Context context, String[] features, String[] clicks, int[] images) { 
    super(context, R.layout.custom_row, features); 

    this.c = context; 
    this.features = features; 
    this.clicks = clicks; 
    this.images = images; 





} 

public class ViewHolder{ 

    TextView txtphone; 
    TextView txtcall; 
    ImageView imgView;  

} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    if(convertView == null){ 


     inflater= (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     convertView = inflater.inflate(R.layout.custom_row, null); 
    } 

    final ViewHolder holder = new ViewHolder(); 


    holder.txtphone = (TextView) convertView.findViewById(R.id.txtphone); 
    holder.txtcall= (TextView) convertView.findViewById(R.id.txtcall); 
    holder.imgView= (ImageView) convertView.findViewById(R.id.imgView); 


    holder.txtphone.setText(features[position]); 
    holder.txtcall.setText(clicks[position]); 
    holder.imgView.setImageResource(images[position]); 


    return convertView; 


} 
} 

Сделать images тот же размер, как features и clicks

int[] images ={R.drawable.ic_menu_gallery, R.drawable.ic_menu_send, R.drawable.ic_menu_send, R.drawable.ic_menu_send, R.drawable.ic_menu_send}; 

И инициализировать адаптер следующий

ListViewAdapter adapter = new ListViewAdapter(this,feature,click,images); 
Смежные вопросы