Android Open Source - unicef_gis_mobile Toggle Tag Adapter






From Project

Back to project page unicef_gis_mobile.

License

The source code is released under:

MIT License

If you think the Android project unicef_gis_mobile listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.unicef.gis.ui.report;
//w  ww.  java  2  s  .  co  m
import java.util.ArrayList;
import java.util.List;

import org.unicef.gis.model.Tag;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ToggleButton;

public class ToggleTagAdapter extends BaseAdapter implements OnCheckedChangeListener {
  private IChooseTagsCallbacks callbacks = null;
  
  private ArrayList<String> chosenTags;
  private List<Tag> tags;
  
  public ToggleTagAdapter(IChooseTagsCallbacks callbacks) {
    this.callbacks = callbacks;
    chosenTags = new ArrayList<String>();
  }
  
  @Override
  public int getCount() {
    return tags == null ? 0 : tags.size();
  }

  @Override
  public Tag getItem(int position) {
    return tags.get(position);
  }

  @Override
  public long getItemId(int position) {
    return tags.get(position).hashCode();
  }

  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    Context context = parent.getContext();
    
    ToggleButton toggle = new ToggleButton(context);
    
        if (convertView == null) {  // if it's not recycled, initialize some attributes
          toggle = new ToggleButton(context);
          toggle.setPadding(8, 8, 8, 8);
          toggle.setText(getItem(position).getValue());
          toggle.setTextOff(getItem(position).getValue());
          toggle.setTextOn(getItem(position).getValue());
          
          toggle.setOnCheckedChangeListener(this);
          
        } else {
          toggle = (ToggleButton) convertView;
        }
        
        toggle.setChecked(chosenTags.contains(getItem(position).getValue()));

        return toggle;
  }
  
  public void setAvailableTags(List<Tag> availableTags) {
    this.tags = availableTags;
    notifyDataSetChanged();
  }

  public void setChosenTags(ArrayList<String> chosenTags) {
    this.chosenTags = chosenTags == null ? new ArrayList<String>() : chosenTags;
    notifyDataSetChanged();
  }

  @Override
  public void onCheckedChanged(CompoundButton button, boolean isChecked) {
    if (isChecked && !chosenTags.contains(button.getText().toString()))
      chosenTags.add(button.getText().toString());
    
    if (!isChecked && chosenTags.contains(button.getText().toString()))
      chosenTags.remove(button.getText().toString());
    
    callbacks.chosenTagsChanged(chosenTags);
  }

  public ArrayList<String> getChosenTags() {
    return chosenTags;
  }
}




Java Source Code List

com.couchbase.cblite.ektorp.CBLiteHttpClient.java
com.couchbase.cblite.ektorp.CBLiteHttpResponse.java
edu.mit.mobile.android.utils.StreamUtils.java
org.unicef.gis.auth.AuthenticatorService.java
org.unicef.gis.auth.Authenticator.java
org.unicef.gis.infrastructure.CompileTimeSettings.java
org.unicef.gis.infrastructure.ILocationServiceConsumer.java
org.unicef.gis.infrastructure.LocationService.java
org.unicef.gis.infrastructure.Network.java
org.unicef.gis.infrastructure.Notificator.java
org.unicef.gis.infrastructure.RoutesResolver.java
org.unicef.gis.infrastructure.ServerUrlPreferenceNotSetException.java
org.unicef.gis.infrastructure.UnicefGisApi.java
org.unicef.gis.infrastructure.data.CouchDbLiteStoreAdapter.java
org.unicef.gis.infrastructure.data.UnicefGisContentProvider.java
org.unicef.gis.infrastructure.data.UnicefGisStore.java
org.unicef.gis.infrastructure.image.AsyncDrawable.java
org.unicef.gis.infrastructure.image.BitmapWorkerTask.java
org.unicef.gis.infrastructure.image.Camera.java
org.unicef.gis.model.Report.java
org.unicef.gis.model.Tag.java
org.unicef.gis.model.couchdb.NullReduce.java
org.unicef.gis.model.couchdb.ReportLoader.java
org.unicef.gis.model.couchdb.views.AllReportsByTimestampDesc.java
org.unicef.gis.model.couchdb.views.PendingSyncReports.java
org.unicef.gis.model.couchdb.views.UnicefGisView.java
org.unicef.gis.model.couchdb.views.UploadedReports.java
org.unicef.gis.sync.SyncAdapter.java
org.unicef.gis.sync.SyncService.java
org.unicef.gis.ui.AlertDialogFragment.java
org.unicef.gis.ui.AuthenticatorActivity.java
org.unicef.gis.ui.ConfigureServerUrlActivity.java
org.unicef.gis.ui.DeleteUploadedReportsTask.java
org.unicef.gis.ui.FetchTagsActivity.java
org.unicef.gis.ui.FetchTagsTask.java
org.unicef.gis.ui.MyReportsActivity.java
org.unicef.gis.ui.SettingsActivity.java
org.unicef.gis.ui.SettingsFragment.java
org.unicef.gis.ui.report.ChooseTagsFragment.java
org.unicef.gis.ui.report.CreateReportActivityConstants.java
org.unicef.gis.ui.report.CreateReportActivity.java
org.unicef.gis.ui.report.GetTagsTaskFragment.java
org.unicef.gis.ui.report.GetTagsTask.java
org.unicef.gis.ui.report.IChooseTagsCallbacks.java
org.unicef.gis.ui.report.IGetTagsCallback.java
org.unicef.gis.ui.report.IGetTagsTaskFragmentCallbacks.java
org.unicef.gis.ui.report.IReportSummaryCallbacks.java
org.unicef.gis.ui.report.ReportRowAdapter.java
org.unicef.gis.ui.report.ReportSummaryFragment.java
org.unicef.gis.ui.report.ReportViewModel.java
org.unicef.gis.ui.report.ToggleTagAdapter.java