package com.marshalchen.common.demoofui.sampleModules; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.Window; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.marshalchen.common.ui.DraggableGridViewPager; import com.marshalchen.common.demoofui.R; public class DraggableGridViewPagerTestActivity extends Activity { private static final String TAG = "DraggableGridViewPagerTestActivity"; private DraggableGridViewPager mDraggableGridViewPager; private Button mAddButton; private Button mRemoveButton; private ArrayAdapter<String> mAdapter; private int mGridCount; @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_NO_TITLE); super.onCreate(savedInstanceState); setContentView(R.layout.draggable_grid_view_pager_test); mDraggableGridViewPager = (DraggableGridViewPager) findViewById(R.id.draggable_grid_view_pager); mAddButton = (Button) findViewById(R.id.add); mRemoveButton = (Button) findViewById(R.id.remove); mAdapter = new ArrayAdapter<String>(this, 0) { @Override public View getView(int position, View convertView, ViewGroup parent) { final String text = getItem(position); if (convertView == null) { convertView = (TextView) getLayoutInflater().inflate(R.layout.draggable_grid_item, null); } ((TextView) convertView).setText(text); return convertView; } }; mDraggableGridViewPager.setAdapter(mAdapter); mDraggableGridViewPager.setOnPageChangeListener(new DraggableGridViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { Log.v(TAG, "onPageScrolled position=" + position + ", positionOffset=" + positionOffset + ", positionOffsetPixels=" + positionOffsetPixels); } @Override public void onPageSelected(int position) { Log.i(TAG, "onPageSelected position=" + position); } @Override public void onPageScrollStateChanged(int state) { Log.d(TAG, "onPageScrollStateChanged state=" + state); } }); mDraggableGridViewPager.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { showToast(((TextView) view).getText().toString()); } }); mDraggableGridViewPager.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { showToast(((TextView) view).getText().toString() + " long clicked!!!"); return true; } }); mDraggableGridViewPager.setOnRearrangeListener(new DraggableGridViewPager.OnRearrangeListener() { @Override public void onRearrange(int oldIndex, int newIndex) { Log.i(TAG, "OnRearrangeListener.onRearrange from=" + oldIndex + ", to=" + newIndex); String item = mAdapter.getItem(oldIndex); mAdapter.setNotifyOnChange(false); mAdapter.remove(item); mAdapter.insert(item, newIndex); mAdapter.notifyDataSetChanged(); } }); mAddButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { mGridCount++; mAdapter.add("Grid" + mGridCount); } }); mRemoveButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (mAdapter.getCount() > 0) { mAdapter.remove(mAdapter.getItem(mAdapter.getCount() - 1)); } } }); } private void showToast(String msg) { Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); } }