Skip to content

Commit 1ca8c4f

Browse files
committed
Merge pull request #12 from amenon/add_open_close_methods
Add open close methods
2 parents 1ed0198 + 473f280 commit 1ca8c4f

File tree

3 files changed

+85
-1
lines changed

3 files changed

+85
-1
lines changed

demo/src/main/java/com/daimajia/swipedemo/GridViewExample.java

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import android.app.Activity;
44
import android.os.Bundle;
5+
import android.os.Handler;
56
import android.util.Log;
67
import android.view.View;
78
import android.widget.AdapterView;
@@ -17,7 +18,7 @@ protected void onCreate(Bundle savedInstanceState) {
1718
super.onCreate(savedInstanceState);
1819
setContentView(R.layout.gridview);
1920
final GridView gridView = (GridView)findViewById(R.id.gridview);
20-
GridViewAdapter adapter = new GridViewAdapter(this);
21+
final GridViewAdapter adapter = new GridViewAdapter(this);
2122
adapter.setMode(SwipeAdapter.Mode.Multiple);
2223
gridView.setAdapter(adapter);
2324
gridView.setSelected(false);
@@ -47,5 +48,29 @@ public void onNothingSelected(AdapterView<?> parent) {
4748

4849
}
4950
});
51+
52+
Handler handler = (new Handler());
53+
// Open up some items in the list
54+
handler.postDelayed(new Runnable() {
55+
@Override
56+
public void run() {
57+
adapter.openItem(1);
58+
adapter.openItem(2);
59+
adapter.openItem(3);
60+
adapter.openItem(1);
61+
}
62+
}, 1000);
63+
64+
65+
// Close some items in the list
66+
handler.postDelayed(new Runnable() {
67+
@Override
68+
public void run() {
69+
adapter.closeItem(1);
70+
adapter.closeItem(1);
71+
adapter.closeItem(3);
72+
}
73+
}, 3000);
74+
5075
}
5176
}

demo/src/main/java/com/daimajia/swipedemo/ListViewExample.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.app.Activity;
44
import android.content.Intent;
55
import android.os.Bundle;
6+
import android.os.Handler;
67
import android.util.Log;
78
import android.view.Menu;
89
import android.view.MenuItem;
@@ -19,6 +20,7 @@ public class ListViewExample extends Activity {
1920

2021
private ListView mListView;
2122
private ListViewAdapter mAdapter;
23+
private int mPositionToTest;
2224

2325
@Override
2426
protected void onCreate(Bundle savedInstanceState) {
@@ -71,6 +73,31 @@ public void onNothingSelected(AdapterView<?> parent) {
7173
Log.e("ListView", "onNothingSelected:");
7274
}
7375
});
76+
77+
final Handler handler = (new Handler());
78+
mPositionToTest = 0;
79+
Runnable runnable = new Runnable() {
80+
@Override
81+
public void run() {
82+
mAdapter.openItem(mPositionToTest++);
83+
if(mPositionToTest < 5)
84+
handler.postDelayed(this, 1000);
85+
}
86+
};
87+
// Open up some items in the list
88+
handler.postDelayed(runnable, 1000);
89+
90+
91+
// Close some items in the list
92+
handler.postDelayed(new Runnable() {
93+
@Override
94+
public void run() {
95+
mAdapter.closeItem(1);
96+
mAdapter.closeItem(4);
97+
mAdapter.closeItem(4);
98+
}
99+
}, 8000);
100+
74101
}
75102

76103

@@ -89,9 +116,11 @@ public boolean onOptionsItemSelected(MenuItem item) {
89116
int id = item.getItemId();
90117
if (id == R.id.action_listview) {
91118
startActivity(new Intent(this, ListViewExample.class));
119+
finish();
92120
return true;
93121
}else if(id == R.id.action_gridview){
94122
startActivity(new Intent(this, GridViewExample.class));
123+
finish();
95124
return true;
96125
}
97126
return super.onOptionsItemSelected(item);

library/src/main/java/com/daimajia/swipe/SwipeAdapter.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,36 @@ public Mode getMode(){
9191
return mode;
9292
}
9393

94+
/**
95+
* Open and item in the list
96+
*
97+
* @param position Position of the item
98+
*/
99+
public void openItem(int position) {
100+
if(mode == Mode.Multiple){
101+
if(!mOpenPositions.contains(position))
102+
mOpenPositions.add(position);
103+
}else{
104+
mOpenPosition = position;
105+
}
106+
notifyDataSetChanged();
107+
}
108+
109+
/**
110+
* Close an item in the list
111+
*
112+
* @param position Position of the item
113+
*/
114+
public void closeItem(int position) {
115+
if(mode == Mode.Multiple){
116+
mOpenPositions.remove(position);
117+
}else{
118+
if(mOpenPosition == position)
119+
mOpenPosition = INVALID_POSITION;
120+
}
121+
notifyDataSetChanged();
122+
}
123+
94124
class ValueBox {
95125
OnLayoutListener onLayoutListener;
96126
SwipeMemory swipeMemory;

0 commit comments

Comments
 (0)