/* ViewHolder pattern: https://www.codeofaninja.com/2013/09/android-viewholder-pattern-example.html */ @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolderItem viewHolder; if (convertView == null) { // Inflate layout first time convertView = LayoutInflater.from(getContext()).inflate(R.layout.artist_list_item, parent, false); // well set up the ViewHolder (partie où sans ViewHolder, cela est coûteux en perf) viewHolder = new ViewHolderItem(); viewHolder.songArtistItem = (TextView) convertView.findViewById(R.id.song_artist); // store the holder with the view convertView.setTag(viewHolder); } else { // using the viewHolder instead of calling findViewById() on resource everytime viewHolder = (ViewHolderItem) convertView.getTag(); } // song object based on the position String artist = getItem(position); if (artist != null) { viewHolder.songArtistItem.setText(artist); } return convertView; }
@Override public View getView(int position, View convertView, ViewGroup parent) { // final View result; ViewHolderItem viewHolder; // inflate the layout LayoutInflater inflater = ((Activity) context).getLayoutInflater(); convertView = inflater.inflate(R.layout.adapter_layout, parent, false); // if (convertView == null) { // well set up the ViewHolder viewHolder = new ViewHolderItem(); viewHolder.name = (TextView) convertView.findViewById(R.id.name); viewHolder.phone = (TextView) convertView.findViewById(R.id.phone); viewHolder.picture = (ImageView) convertView.findViewById(R.id.picture); viewHolder.favori = (ImageView) convertView.findViewById(R.id.favoris); // store the holder with the view. convertView.setTag(viewHolder); /*} else viewHolder = (ViewHolderItem) convertView.getTag();*/ final Contact contact = (Contact) getItem(position); viewHolder.name.setText(contact.getName()); viewHolder.phone.setText(contact.getPhone()); viewHolder.favori.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { contact.setFav(!contact.getFav()); ContactDB.getDataBase().updateContact(contact); notifyDataSetChanged(); } }); if (contact.getFav()) viewHolder.favori.setImageResource(android.R.drawable.btn_star_big_on); else viewHolder.favori.setImageResource(android.R.drawable.btn_star_big_off); Uri uri = contact.getPicture(); if (!(uri == null || uri.toString().isEmpty())) { try { Bitmap bmp = getBitmapFromUri(uri, context); viewHolder.picture.setImageBitmap(RoundedImageView.getCroppedBitmap(bmp, 120)); } catch (Exception e) { Log.e("ProfileAdapter", e.getMessage()); e.printStackTrace(); } } return convertView; }
@Override public View newView(Context context, Cursor cursor, ViewGroup parent) { View view = mInflater.inflate(R.layout.select_key_item, null); ViewHolderItem holder = new ViewHolderItem(); holder.view = view; holder.mainUserId = (TextView) view.findViewById(R.id.select_key_item_name); holder.mainUserIdRest = (TextView) view.findViewById(R.id.select_key_item_email); holder.creation = (TextView) view.findViewById(R.id.select_key_item_creation); holder.statusIcon = (ImageView) view.findViewById(R.id.select_key_item_status_icon); holder.selected = (CheckBox) view.findViewById(R.id.selected); view.setTag(holder); return view; }
@Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolderItem holder; if (convertView == null) { convertView = inflater.inflate(R.layout.library_item, null); holder = new ViewHolderItem(); holder.hThreedot = (ImageButton) convertView.findViewById(R.id.threedotButton); holder.hButtonPlay = (ImageButton) convertView.findViewById(R.id.play_song); holder.hSongTitle = (TextView) convertView.findViewById(R.id.title_song); holder.hSongArtist = (TextView) convertView.findViewById(R.id.artist); holder.hCoverImage = (ImageView) convertView.findViewById(R.id.cover_song); holder.hSongDuration = (TextView) convertView.findViewById(R.id.duration_song); convertView.setTag(holder); } else { holder = (ViewHolderItem) convertView.getTag(); } MusicData music = getItem(position); String strArtist = music.getSongArtist(); String strTitle = music.getSongTitle(); String strDuration = music.getSongDuration(); Bitmap bitmap = music.getSongBitmap(); if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.HONEYCOMB) { holder.hButtonPlay.setBackgroundDrawable( activity.getResources().getDrawable(R.drawable.selectable_item_bg_honeycomb)); } if (null != bitmap) { holder.hCoverImage.setImageBitmap(bitmap); } else { holder.hCoverImage.setImageResource(R.drawable.fallback_cover); } holder.hSongTitle.setText(strTitle); holder.hSongDuration.setText(strDuration); holder.hSongArtist.setText(strArtist); final int pos = position; activity.registerForContextMenu(convertView); convertView.setOnLongClickListener( new OnLongClickListener() { @Override public boolean onLongClick(View arg0) { MusicData music = getItem(pos); activity.setDeletedItem(music); activity.setSelectedItem(music); return false; } }); holder.hThreedot.setOnClickListener( new OnClickListener() { @Override public void onClick(View arg0) { MusicData music = getItem(pos); activity.setDeletedItem(music); activity.setSelectedItem(music); arg0.performLongClick(); } }); holder.hButtonPlay.setOnClickListener( new OnClickListener() { @Override public void onClick(View v) { MusicData musicData = getItem(pos); activity.play(null, musicData); } }); return convertView; }
@Override protected void onBindItemViewHolder(RecyclerView.ViewHolder holder, int position) { ItemObject itemObject = getItem(position); ViewHolderItem holderItem = (ViewHolderItem) holder; holderItem.render(itemObject); }
// getView method is called for each item of ListView public View getView(final int position, View convertView, ViewGroup parent) { // inflate the layout for each item of listView (our services) ViewHolderItem vH; if (convertView == null) { LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.kali_services_item, parent, false); // set up the ViewHolder vH = new ViewHolderItem(); // get the reference of switch and the text view vH.swTitle = (TextView) convertView.findViewById(R.id.switchTitle); vH.sw = (Switch) convertView.findViewById(R.id.switch1); vH.swholder = (TextView) convertView.findViewById(R.id.switchHolder); vH.swBootCheckbox = (CheckBox) convertView.findViewById(R.id.initAtBoot); convertView.setTag(vH); // System.out.println ("created row"); } else { // recycle the items in the list is already exists vH = (ViewHolderItem) convertView.getTag(); } if (position >= _serviceStates.length) { // out of range, return ,do nothing return convertView; } // remove listeners vH.sw.setOnCheckedChangeListener(null); vH.swBootCheckbox.setOnCheckedChangeListener(null); // set service name vH.swTitle.setText(services[position][0]); // clear state vH.sw.setChecked(false); vH.swBootCheckbox.setChecked(false); // check it // running services if (_serviceStates[position].equals("1")) { vH.sw.setChecked(true); vH.swTitle.setTextColor(mContext.getResources().getColor(R.color.blue)); vH.swholder.setText(services[position][0] + " Service is UP"); vH.swholder.setTextColor(mContext.getResources().getColor(R.color.blue)); } else { vH.sw.setChecked(false); vH.swTitle.setTextColor(mContext.getResources().getColor(R.color.clearTitle)); vH.swholder.setText(services[position][0] + " Service is DOWN"); vH.swholder.setTextColor(mContext.getResources().getColor(R.color.clearText)); } // services enabled at boot if (_serviceBootStates[position].equals("1")) { // is enabled vH.swBootCheckbox.setChecked(true); vH.swBootCheckbox.setTextColor(mContext.getResources().getColor(R.color.blue)); } else { // is not :) vH.swBootCheckbox.setChecked(false); vH.swBootCheckbox.setTextColor(mContext.getResources().getColor(R.color.clearTitle)); } // add listeners final ViewHolderItem finalVH = vH; vH.sw.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { new Thread( new Runnable() { public void run() { exe.RunAsRoot(new String[] {services[position][2]}); } }) .start(); _serviceStates[position] = "1"; finalVH.swholder.setText(services[position][0] + " Service Started"); finalVH.swTitle.setTextColor(mContext.getResources().getColor(R.color.blue)); finalVH.swholder.setTextColor(mContext.getResources().getColor(R.color.blue)); } else { new Thread( new Runnable() { public void run() { exe.RunAsRoot(new String[] {services[position][3]}); } }) .start(); _serviceStates[position] = "0"; finalVH.swholder.setText(services[position][0] + " Service Stopped"); finalVH.swTitle.setTextColor(mContext.getResources().getColor(R.color.clearTitle)); finalVH.swholder.setTextColor(mContext.getResources().getColor(R.color.clearText)); } } }); vH.swBootCheckbox.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { new Thread( new Runnable() { public void run() { Log.d("bootservice", "ADD " + services[position][4]); addBootService(position); } }) .start(); _serviceBootStates[position] = "1"; finalVH.swBootCheckbox.setTextColor(mContext.getResources().getColor(R.color.blue)); } else { new Thread( new Runnable() { public void run() { Log.d("bootservice", "REMOVE " + services[position][4]); removeBootService(position); } }) .start(); _serviceBootStates[position] = "0"; finalVH.swBootCheckbox.setTextColor( mContext.getResources().getColor(R.color.clearTitle)); } } }); return convertView; }