Merge pull request #12 from amenon/add_open_close_methods

Add open close methods
This commit is contained in:
代码家 2014-08-31 09:03:45 +08:00
commit 1ca8c4f049
3 changed files with 85 additions and 1 deletions

View File

@ -2,6 +2,7 @@ package com.daimajia.swipedemo;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
@ -17,7 +18,7 @@ public class GridViewExample extends Activity{
super.onCreate(savedInstanceState);
setContentView(R.layout.gridview);
final GridView gridView = (GridView)findViewById(R.id.gridview);
GridViewAdapter adapter = new GridViewAdapter(this);
final GridViewAdapter adapter = new GridViewAdapter(this);
adapter.setMode(SwipeAdapter.Mode.Multiple);
gridView.setAdapter(adapter);
gridView.setSelected(false);
@ -47,5 +48,29 @@ public class GridViewExample extends Activity{
}
});
Handler handler = (new Handler());
// Open up some items in the list
handler.postDelayed(new Runnable() {
@Override
public void run() {
adapter.openItem(1);
adapter.openItem(2);
adapter.openItem(3);
adapter.openItem(1);
}
}, 1000);
// Close some items in the list
handler.postDelayed(new Runnable() {
@Override
public void run() {
adapter.closeItem(1);
adapter.closeItem(1);
adapter.closeItem(3);
}
}, 3000);
}
}

View File

@ -3,6 +3,7 @@ package com.daimajia.swipedemo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
@ -19,6 +20,7 @@ public class ListViewExample extends Activity {
private ListView mListView;
private ListViewAdapter mAdapter;
private int mPositionToTest;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -71,6 +73,31 @@ public class ListViewExample extends Activity {
Log.e("ListView", "onNothingSelected:");
}
});
final Handler handler = (new Handler());
mPositionToTest = 0;
Runnable runnable = new Runnable() {
@Override
public void run() {
mAdapter.openItem(mPositionToTest++);
if(mPositionToTest < 5)
handler.postDelayed(this, 1000);
}
};
// Open up some items in the list
handler.postDelayed(runnable, 1000);
// Close some items in the list
handler.postDelayed(new Runnable() {
@Override
public void run() {
mAdapter.closeItem(1);
mAdapter.closeItem(4);
mAdapter.closeItem(4);
}
}, 8000);
}
@ -89,9 +116,11 @@ public class ListViewExample extends Activity {
int id = item.getItemId();
if (id == R.id.action_listview) {
startActivity(new Intent(this, ListViewExample.class));
finish();
return true;
}else if(id == R.id.action_gridview){
startActivity(new Intent(this, GridViewExample.class));
finish();
return true;
}
return super.onOptionsItemSelected(item);

View File

@ -91,6 +91,36 @@ public abstract class SwipeAdapter extends BaseAdapter {
return mode;
}
/**
* Open and item in the list
*
* @param position Position of the item
*/
public void openItem(int position) {
if(mode == Mode.Multiple){
if(!mOpenPositions.contains(position))
mOpenPositions.add(position);
}else{
mOpenPosition = position;
}
notifyDataSetChanged();
}
/**
* Close an item in the list
*
* @param position Position of the item
*/
public void closeItem(int position) {
if(mode == Mode.Multiple){
mOpenPositions.remove(position);
}else{
if(mOpenPosition == position)
mOpenPosition = INVALID_POSITION;
}
notifyDataSetChanged();
}
class ValueBox {
OnLayoutListener onLayoutListener;
SwipeMemory swipeMemory;