Skip to content

Instantly share code, notes, and snippets.

@Omnipresent
Last active August 29, 2015 13:56
Show Gist options
  • Save Omnipresent/9037444 to your computer and use it in GitHub Desktop.
Save Omnipresent/9037444 to your computer and use it in GitHub Desktop.
package com.favtest.app;
import android.app.Activity;
import android.content.Context;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.ToggleButton;
public class DemoActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ColorInfo[] clr= new ColorInfo[20];
for(int i=0;i<20;i++){
ColorInfo clrInfo = new ColorInfo();
if (i%2 == 0)
clrInfo.isChecked = true;
else
clrInfo.isChecked = false;
clr[i] = clrInfo;
}
((ListView)findViewById(R.id.list)).setAdapter(new MyAdapter(this, 0, clr));
}
private class MyAdapter extends ArrayAdapter<ColorInfo> implements View.OnClickListener {
LayoutInflater inflater;
public MyAdapter(Context context, int textViewResourceId,
ColorInfo[] objects) {
super(context, textViewResourceId, objects);
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView == null){
convertView = inflater.inflate(R.layout.row, null);
holder = new ViewHolder();
holder.tgl = (ToggleButton) convertView.findViewById(R.id.toggle);
convertView.setTag(holder);
}
holder = (ViewHolder) convertView.getTag();
holder.tgl.setTag(position);
holder.tgl.setOnClickListener(this);
holder.tgl.setChecked(getItem(position).isChecked);
if (holder.tgl.isChecked()) {
holder.tgl.setBackgroundDrawable(getResources().getDrawable(R.drawable.action_star_pressed));
}
else {
holder.tgl.setBackgroundDrawable(getResources().getDrawable(R.drawable.action_star));
}
return convertView;
}
private class ViewHolder{
ToggleButton tgl;
}
public void onClick(View v) {
int pos = (Integer) v.getTag();
ColorInfo cinfo = getItem(pos);
cinfo.isChecked = !cinfo.isChecked;
}
}
private static class ColorInfo{
boolean isChecked=false;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment