Back to project page SoundScheduler.
The source code is released under:
GNU General Public License
If you think the Android project SoundScheduler listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Sound Scheduler/*from w ww. jav a2 s. c o m*/ * Copyright (C) 2013 Victor Kifer */ package com.victorkifer.SoundScheduler.adapters; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.victorkifer.SoundScheduler.R; import com.victorkifer.SoundScheduler.entities.Rule; import com.victorkifer.SoundScheduler.listeners.RuleDeleteListener; import com.victorkifer.SoundScheduler.listeners.RuleItemStateListener; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Locale; public class RuleListAdapter extends BaseAdapter { Context context; List<Rule> rules; private static LayoutInflater inflater = null; public RuleListAdapter(Context context, List<Rule> rules) { this.context = context; this.rules = rules; inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public int getCount() { return rules.size(); } @Override public Object getItem(int position) { return rules.get(position); } @Override public long getItemId(int position) { return rules.get(position).getId(); } @Override public View getView(int position, View vi, ViewGroup parent) { if (vi == null) { vi = inflater.inflate(R.layout.listview_item, null); ResourceHolder rh = new ResourceHolder(); rh.ivState = (ImageView) vi.findViewById(R.id.ivRuleState); rh.ivDelete = (ImageView) vi.findViewById(R.id.ivRuleDelete); rh.tvTime = (TextView) vi.findViewById(R.id.tvRuleName); rh.tvDaysRepeat = (TextView) vi.findViewById(R.id.tvRuleRepeat); rh.ruleStateListener = new RuleItemStateListener(getItemId(position)); rh.ruleDeleteListener = new RuleDeleteListener(getItemId(position)); vi.setTag(rh); } ResourceHolder rh = (ResourceHolder) vi.getTag(); final ImageView ivState = rh.ivState; final ImageView ivDelete = rh.ivDelete; final TextView tvTime = rh.tvTime; final TextView tvRepeat = rh.tvDaysRepeat; rh.ruleStateListener.updateId(getItemId(position)); ivState.setOnClickListener(rh.ruleStateListener); if(rules.get(position).isActive()) { ivState.setImageResource(R.drawable.ruleon); } else { ivState.setImageResource(R.drawable.ruleoff); } rh.ruleDeleteListener.updateId(getItemId(position)); ivDelete.setOnClickListener(rh.ruleDeleteListener); Date date = new Date(); date.setTime(rules.get(position).getStartTime()); SimpleDateFormat dateFormat = new SimpleDateFormat("H:mm", Locale.US); String dateString = dateFormat.format(date) + "-"; date.setTime(rules.get(position).getEndTime()); dateString += dateFormat.format(date); tvTime.setText(dateString); String repeat = rules.get(position).getDaysRepeatString(context.getResources().getStringArray(R.array.days_short)); if(repeat.isEmpty()) { repeat = context.getString(R.string.no_days_selected); } tvRepeat.setText(repeat); return vi; } private class ResourceHolder { public ImageView ivState; public ImageView ivDelete; public TextView tvTime; public TextView tvDaysRepeat; public RuleItemStateListener ruleStateListener; public RuleDeleteListener ruleDeleteListener; } }