diff --git a/res/layout/list_item.xml b/res/layout/list_item.xml
new file mode 100644
index 0000000..9f45177
--- /dev/null
+++ b/res/layout/list_item.xml
@@ -0,0 +1,6 @@
+
+
+
diff --git a/src/com/onirica/carrousel/Configuration.java b/src/com/onirica/carrousel/Configuration.java
index 5e91416..78b5100 100644
--- a/src/com/onirica/carrousel/Configuration.java
+++ b/src/com/onirica/carrousel/Configuration.java
@@ -6,12 +6,20 @@ import android.app.Activity;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.ComponentName;
+import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
+import android.view.View;
+import android.view.ViewGroup;
import android.widget.ArrayAdapter;
+import android.widget.BaseAdapter;
+import android.widget.CheckBox;
+import android.widget.CompoundButton;
+import android.widget.LinearLayout;
+import android.widget.TextView;
public class Configuration extends ListActivity {
private Results mResults;
@@ -57,8 +65,82 @@ public class Configuration extends ListActivity {
ArrayList matches = mResults.getMatches();
Match[] ms = new Match[matches.size()];
matches.toArray(ms);
- ArrayAdapter adapter = new ArrayAdapter(this, R.layout.list_item, ms);
- setListAdapter(adapter);
-
+ MatchAdapter adapter = new MatchAdapter(ms);
+ setListAdapter(adapter);
+ }
+
+ private class MatchView extends LinearLayout {
+ private TextView mTv;
+ private CheckBox mCb;
+ private CompoundButton.OnCheckedChangeListener mListener = null;
+
+ public MatchView(Context context, String text) {
+ super(context);
+ this.setOrientation(HORIZONTAL);
+ mTv = new TextView(context);
+ mTv.setText(text);
+ mCb = new CheckBox(context);
+ mCb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ if (mListener != null) {
+ mListener.onCheckedChanged(buttonView, isChecked); }
+ }
+ });
+
+ this.addView(mTv, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1));
+ this.addView(mCb, new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 0));
+ }
+
+ public void setText(String text) {
+ mTv.setText(text);
+ }
+
+ public void setOnMatchCheckedChanged(CompoundButton.OnCheckedChangeListener listener) {
+ mListener = listener;
+ }
+ }
+ private class MatchAdapter extends BaseAdapter {
+ private Match mMatches[];
+
+ public MatchAdapter(Match matches[]) {
+ super();
+ mMatches = matches;
+ }
+ @Override
+ public int getCount() {
+ return mMatches.length;
+ }
+
+ @Override
+ public Object getItem(int pos) {
+ return (Object)mMatches[pos];
+ }
+
+ @Override
+ public long getItemId(int pos) {
+ return pos;
+ }
+ public View getView(int pos, View convertView, ViewGroup parent) {
+ MatchView v;
+ if (convertView == null) {
+ v = new MatchView(parent.getContext(), mMatches[pos].toString());
+ v.setOnMatchCheckedChanged(new OnMatchCheckedListener(pos));
+ } else {
+ v = (MatchView)convertView;
+ v.setText(mMatches[pos].toString());
+ }
+ return v;
+ }
+ private class OnMatchCheckedListener implements CompoundButton.OnCheckedChangeListener {
+ private int mPosition;
+ OnMatchCheckedListener(int position){
+ mPosition = position;
+ }
+ @Override
+ public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
+ // Do the real stuff here.
+ }
+
+ }
}
}
\ No newline at end of file