Skip to content

Instantly share code, notes, and snippets.

@AdamJB
Created July 30, 2013 15:54
Show Gist options
  • Save AdamJB/6114225 to your computer and use it in GitHub Desktop.
Save AdamJB/6114225 to your computer and use it in GitHub Desktop.
Sample Check thingie
package com.ajb.dbtest.ui;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.support.v4.widget.CursorAdapter;
import android.support.v4.widget.SimpleCursorAdapter;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.FrameLayout;
import android.widget.ListView;
import com.ajb.dbtest.R;
import com.ajb.dbtest.db.FriendManager;
import com.ajb.dbtest.db.models.Friend;
public class MainActivity extends FragmentActivity implements LoaderManager.LoaderCallbacks<Cursor> {
private final static String TAG = "MyApp";
private SimpleCursorAdapter mAdapter;
private ListView mListView;
private FrameLayout mCurrentToggledFrame;
private int mCurrentToggledPosition;
// If the toggled row on the same page?
private boolean isCurrentToggleOnPage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = (ListView) findViewById(R.id.list_view);
mListView.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE);
mListView.setClickable(false);
FriendManager friendManager = new FriendManager(this);
// for (int i = 11; i < 30; i++) {
// friendManager.addFriend(new Friend("Friend " + i));
// }
mCurrentToggledFrame = null;
mCurrentToggledPosition = -1;
isCurrentToggleOnPage = false;
String[] from = new String[] {
Friend.C_NAME
};
int[] to = new int[] {
R.id.name
};
mAdapter = new SimpleCursorAdapter(this, R.layout.row, null, from, to,
CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER) {
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final ListView listViewParent = (ListView) parent;
View view = super.getView(position, convertView, parent);
final FrameLayout topFrame = (FrameLayout) view.findViewById(R.id.top_frame);
final FrameLayout bottomFrame = (FrameLayout) view.findViewById(R.id.bottom_frame);
// Log.d("Test", "Getting View! at " + position);
int lastCheckedPosition = listViewParent.getCheckedItemPosition();
Log.i(TAG, "Clicked current Item : " + lastCheckedPosition);
if (position == lastCheckedPosition) {
topFrame.setVisibility(View.INVISIBLE);
} else {
topFrame.setVisibility(View.VISIBLE);
}
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
boolean isClickingCurrentPosition = listViewParent.getCheckedItemPosition() == position;
if (isClickingCurrentPosition) {
listViewParent.setItemChecked(position, false);
} else {
listViewParent.setItemChecked(position, true);
}
}
});
return view;
}
};
mListView.setAdapter(mAdapter);
mListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
final FrameLayout topFrame = (FrameLayout) view.findViewById(R.id.top_frame);
// mListView.setItemChecked(position, true);
int lastCheckedPosition = mListView.getCheckedItemPosition();
Log.i(TAG, "Not called");
}
});
getSupportLoaderManager().initLoader(0, null, this);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
String[] allColumns = new String[] {
"*"
};
return new CursorLoader(this, Friend.CONTENT_URI, allColumns, null, null, null);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
mAdapter.swapCursor(cursor);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
mAdapter.swapCursor(null);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment