Custom ListView без xml

Интерфейс, диалоги, темы, стили, меню
Ответить
Lucifer777
Сообщения: 122
Зарегистрирован: 18 ноя 2013, 17:53

Custom ListView без xml

Сообщение Lucifer777 » 14 мар 2014, 10:39

Здравствуйте!
Хочу задать элементы view не через xml а через программный код, но не знаю как правильно в convertView передать элементы view. Помогите пожалуйста разобраться.

Код: Выделить всё

public class ListCastAdapter extends BaseAdapter {
	
	
	private Activity activity;
    private ArrayList<Model> data;
    private static LayoutInflater inflater=null;
    Model hp;
    
    public ListHitParadAdapter(Activity a, ArrayList<Model> d) 
    {
        activity = a;
        data=d;
        inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
		
		View vi=convertView;
		ViewGroup vg=parent;
		 ViewHolder holder;
	        if(convertView==null)
	        {
	            vi = inflater.inflate(R.layout.listviewcast, null);
	        
	            
	            ImageView  globalScreen = new ImageView(activity);
	    		{
	    			FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
	    			params.setMargins(0, 0, 0, 0);
	    			globalScreen.setLayoutParams(params);
	    			globalScreen.setBackgroundResource(R.drawable.ic_screen);
	    		};
	    			
	    	
			//тут магия, которая позволяет отобразить элементы группы view
			
	 
	        }
	        else 
                holder=(ViewHolder)vi.getTag();
             
            if(data.size()<=0)
            {
                 
            }
            else
            {
               
            	hp=null;
            	hp = ( Model ) data.get( position );
            	
            	holder.tv1.setText(hp.getText1());
            	holder.tv2.setText(hp.getText2());
            	holder.tv3.setText(hp.getText3());
            	holder.iv1.setImageBitmap(hp.getImage());
            	
                vi.setOnClickListener(new OnItemClickListener( position ));
             }
            
	        return vi;
	}
    @Override
	public int getCount() {
		
		return data.size();
	}
    @Override
	public Object getItem(int position) {
		
		return position;
	}
    @Override
	public long getItemId(int position) {
		
		return position;
	}

	public static class ViewHolder {
        
		public TextView tv1;
		public TextView tv2;
		public TextView tv3;
		public ImageView iv1;
		
 
    }
	
	private class OnItemClickListener  implements OnClickListener{           
        private int mPosition;
         
        OnItemClickListener(int position){
             mPosition = position;
        }
         
        @Override
        public void onClick(View arg0) {

   
          Parser sct = (Parser)activity;

         

            sct.onItemClick(mPosition);
        }               
    } 

}


Ответить