package com.codetroopers.betterpickers.sample.activity.hmspicker; import android.content.Context; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ListView; import android.widget.TextView; import com.codetroopers.betterpickers.hmspicker.HmsPickerBuilder; import com.codetroopers.betterpickers.hmspicker.HmsPickerDialogFragment; import com.codetroopers.betterpickers.sample.R; import com.codetroopers.betterpickers.sample.activity.BaseSampleActivity; import java.util.ArrayList; /** * User: derek Date: 3/17/13 Time: 3:59 PM */ public class SampleHmsListAdapter extends BaseSampleActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.list); ListView list = (ListView) findViewById(R.id.list); list.setAdapter(new SampleAdapter(this, getSupportFragmentManager())); } private class SampleAdapter extends BaseAdapter implements HmsPickerDialogFragment.HmsPickerDialogHandlerV2 { private ArrayList<Hms> mHmses; private LayoutInflater mInflater; private ViewHolder holder; private HmsPickerBuilder mHmsPickerBuilder; public SampleAdapter(Context context, FragmentManager fm) { super(); mInflater = LayoutInflater.from(context); mHmses = new ArrayList<Hms>(); for (int i = 0; i < 30; i++) { Hms hms = new Hms(); hms.hours = 0; hms.minutes = i * 2; hms.seconds = 60 - i; mHmses.add(hms); } mHmsPickerBuilder = new HmsPickerBuilder() .setFragmentManager(fm) .setStyleResId(R.style.BetterPickersDialogFragment_Light); } private class Hms { public int hours = 0; public int minutes = 0; public int seconds = 0; } private class ViewHolder { public Button button; public TextView text; } @Override public int getCount() { return mHmses.size(); } @Override public Hms getItem(int position) { return mHmses.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { view = mInflater.inflate(R.layout.list_item, parent, false); holder = new ViewHolder(); holder.button = (Button) view.findViewById(R.id.button); holder.text = (TextView) view.findViewById(R.id.text); view.setTag(holder); } else { holder = (ViewHolder) view.getTag(); } final Hms hms = getItem(position); holder.text.setText(getString(R.string.hms_picker_result_value_oneline, hms.hours, hms.minutes, hms.seconds)); holder.button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mHmsPickerBuilder.setReference(position); mHmsPickerBuilder.setTime(hms.hours, hms.minutes, hms.seconds); mHmsPickerBuilder.addHmsPickerDialogHandler(SampleAdapter.this); mHmsPickerBuilder.show(); } }); return view; } @Override public void onDialogHmsSet(int reference, boolean isNegative, int hours, int minutes, int seconds) { Hms hms = new Hms(); hms.hours = hours; hms.minutes = minutes; hms.seconds = seconds; mHmses.set(reference, hms); notifyDataSetChanged(); } } }