Skip to content

Commit a5a2e2c

Browse files
committed
(recyclerview, adapter) Initial RecyclerView update.. see details
Added more basic functionaloty to the recycler view activity and more improvements
1 parent bd47491 commit a5a2e2c

File tree

6 files changed

+92
-73
lines changed

6 files changed

+92
-73
lines changed

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

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.daimajia.swipedemo;
22

3+
import android.app.ActionBar;
34
import android.app.Activity;
45
import android.content.Context;
56
import android.content.Intent;
7+
import android.os.Build;
68
import android.os.Bundle;
79
import android.util.Log;
810
import android.view.Menu;
@@ -23,11 +25,18 @@ public class ListViewExample extends Activity {
2325
private ListView mListView;
2426
private ListViewAdapter mAdapter;
2527
private Context mContext = this;
28+
2629
@Override
2730
protected void onCreate(Bundle savedInstanceState) {
2831
super.onCreate(savedInstanceState);
2932
setContentView(R.layout.listview);
30-
mListView = (ListView)findViewById(R.id.listview);
33+
mListView = (ListView) findViewById(R.id.listview);
34+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
35+
ActionBar actionBar = getActionBar();
36+
if (actionBar != null) {
37+
actionBar.setTitle("ListView");
38+
}
39+
}
3140

3241
/**
3342
* The following comment is the sample usage of ArraySwipeAdapter.
@@ -50,7 +59,7 @@ public void onItemClick(AdapterView<?> parent, View view, int position, long id)
5059
mListView.setOnTouchListener(new View.OnTouchListener() {
5160
@Override
5261
public boolean onTouch(View v, MotionEvent event) {
53-
Log.e("ListView","OnTouch");
62+
Log.e("ListView", "OnTouch");
5463
return false;
5564
}
5665
});
@@ -64,7 +73,7 @@ public boolean onItemLongClick(AdapterView<?> parent, View view, int position, l
6473
mListView.setOnScrollListener(new AbsListView.OnScrollListener() {
6574
@Override
6675
public void onScrollStateChanged(AbsListView view, int scrollState) {
67-
Log.e("ListView","onScrollStateChanged");
76+
Log.e("ListView", "onScrollStateChanged");
6877
}
6978

7079
@Override
@@ -105,10 +114,14 @@ public boolean onOptionsItemSelected(MenuItem item) {
105114
startActivity(new Intent(this, ListViewExample.class));
106115
finish();
107116
return true;
108-
}else if(id == R.id.action_gridview){
117+
} else if (id == R.id.action_gridview) {
109118
startActivity(new Intent(this, GridViewExample.class));
110119
finish();
111120
return true;
121+
} else if (id == R.id.action_recycler) {
122+
startActivity(new Intent(this, RecyclerViewExample.class));
123+
finish();
124+
return true;
112125
}
113126
return super.onOptionsItemSelected(item);
114127
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
119119
} else if (id == R.id.action_recycler) {
120120
startActivity(new Intent(this, RecyclerViewExample.class));
121121
}
122-
return super.onOptionsItemSelected(item);
122+
return super.onOptionsItemSelected(item);
123123
}
124124

125125
/*

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

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package com.daimajia.swipedemo;
22

3+
import android.app.ActionBar;
34
import android.app.Activity;
45
import android.content.Context;
56
import android.content.Intent;
67
import android.graphics.drawable.Drawable;
8+
import android.os.Build;
79
import android.os.Bundle;
8-
import android.support.v7.widget.LinearLayoutManager;
910
import android.support.v7.widget.RecyclerView;
1011
import android.util.Log;
1112
import android.view.Menu;
@@ -15,13 +16,16 @@
1516
import android.widget.Toast;
1617

1718
import com.daimajia.swipe.util.Attributes;
18-
import com.daimajia.swipedemo.adapter.RecyclerViewSimpleAdapter;
19+
import com.daimajia.swipedemo.adapter.RecyclerViewAdvancedAdapter;
1920

2021
import org.lucasr.twowayview.ItemClickSupport;
2122
import org.lucasr.twowayview.TwoWayLayoutManager;
2223
import org.lucasr.twowayview.widget.DividerItemDecoration;
2324
import org.lucasr.twowayview.widget.ListLayoutManager;
2425

26+
import java.util.ArrayList;
27+
import java.util.Arrays;
28+
2529
public class RecyclerViewExample extends Activity {
2630

2731
private RecyclerView recyclerView;
@@ -30,31 +34,36 @@ public class RecyclerViewExample extends Activity {
3034
// Our LayoutManager uses: https://github.com/lucasr/twoway-view to help with decoration and can be used for a more advanced config as well.
3135
// Read http://lucasr.org/2014/07/31/the-new-twowayview/ for a better understanding
3236
private RecyclerView.LayoutManager mLayoutManager;
33-
private Context mContext = this;
3437

38+
private Context mContext = this;
39+
private ArrayList<String> mDataSet;
3540
@Override
3641
protected void onCreate(Bundle savedInstanceState) {
3742
super.onCreate(savedInstanceState);
3843
setContentView(R.layout.recyclerview);
3944
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
45+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
46+
ActionBar actionBar = getActionBar();
47+
if (actionBar != null) {
48+
actionBar.setTitle("RecyclerView");
49+
}
50+
}
4051

4152
/**
42-
* The following comment is the sample usage of ArraySwipeAdapter.
53+
* Sample data.
4354
*/
44-
String[] adapterData = new String[]{"Activity", "Service", "Content Provider", "Intent", "BroadcastReceiver", "ADT", "Sqlite3", "HttpClient",
45-
"DDMS", "Android Studio", "Fragment", "Loader", "Activity", "Service", "Content Provider", "Intent",
46-
"BroadcastReceiver", "ADT", "Sqlite3", "HttpClient", "Activity", "Service", "Content Provider", "Intent",
47-
"BroadcastReceiver", "ADT", "Sqlite3", "HttpClient"};
55+
String[] adapterData = new String[]{"Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming"};
4856

4957
// Uses a ListLayout manager from TwoWayView Lib:
5058
mLayoutManager = new ListLayoutManager(this, TwoWayLayoutManager.Orientation.VERTICAL);
5159
recyclerView.setLayoutManager(mLayoutManager);
5260
final Drawable divider = getResources().getDrawable(R.drawable.divider);
5361
recyclerView.addItemDecoration(new DividerItemDecoration(divider));
5462

55-
mAdapter = new RecyclerViewSimpleAdapter(this, adapterData);
63+
mDataSet = new ArrayList<String>(Arrays.asList(adapterData));
64+
mAdapter = new RecyclerViewAdvancedAdapter(this, mDataSet);
65+
((RecyclerViewAdvancedAdapter) mAdapter).setMode(Attributes.Mode.Single);
5666
recyclerView.setAdapter(mAdapter);
57-
((RecyclerViewSimpleAdapter) mAdapter).setMode(Attributes.Mode.Single);
5867

5968
/* Listeners */
6069
ItemClickSupport itemClick = ItemClickSupport.addTo(recyclerView);

demo/src/main/java/com/daimajia/swipedemo/adapter/RecyclerViewSimpleAdapter.java renamed to demo/src/main/java/com/daimajia/swipedemo/adapter/RecyclerViewAdvancedAdapter.java

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,31 @@
1818
import com.daimajia.swipe.util.Attributes;
1919
import com.daimajia.swipedemo.R;
2020

21-
import java.lang.reflect.Array;
2221
import java.util.ArrayList;
2322
import java.util.List;
24-
import java.util.Objects;
2523

26-
public class RecyclerViewSimpleAdapter extends RecyclerView.Adapter<RecyclerViewSimpleAdapter.ViewHolder> implements SwipeItemMangerInterface, SwipeAdapterInterface {
24+
public class RecyclerViewAdvancedAdapter extends RecyclerView.Adapter<RecyclerViewAdvancedAdapter.ViewHolder> implements SwipeItemMangerInterface, SwipeAdapterInterface {
2725

2826
public static class ViewHolder extends RecyclerView.ViewHolder {
2927
SwipeLayout swipeLayout;
30-
TextView textView;
28+
TextView textViewPos;
29+
TextView textViewData;
3130

3231
public ViewHolder(View itemView) {
3332
super(itemView);
3433
swipeLayout = (SwipeLayout) itemView.findViewById(R.id.swipe);
35-
textView = (TextView) itemView.findViewById(R.id.position);
34+
textViewPos = (TextView) itemView.findViewById(R.id.position);
35+
textViewData = (TextView) itemView.findViewById(R.id.text_data);
3636
}
3737
}
3838

3939
private Context mContext;
40-
private String[] mDataset;
40+
private ArrayList<String> mDataset;
4141

4242
protected SwipeItemRecyclerMangerImpl mItemManger = new SwipeItemRecyclerMangerImpl(this);
4343

4444

45-
public RecyclerViewSimpleAdapter(Context context, String[] objects) {
45+
public RecyclerViewAdvancedAdapter(Context context, ArrayList<String> objects) {
4646
this.mContext = context;
4747
this.mDataset = objects;
4848
}
@@ -54,7 +54,8 @@ public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
5454
}
5555

5656
@Override
57-
public void onBindViewHolder(ViewHolder viewHolder, int position) {
57+
public void onBindViewHolder(final ViewHolder viewHolder, final int position) {
58+
viewHolder.swipeLayout.setShowMode(SwipeLayout.ShowMode.LayDown);
5859
viewHolder.swipeLayout.addSwipeListener(new SimpleSwipeListener() {
5960
@Override
6061
public void onOpen(SwipeLayout layout) {
@@ -67,7 +68,9 @@ public void onDoubleClick(SwipeLayout layout, boolean surface) {
6768
Toast.makeText(mContext, "DoubleClick", Toast.LENGTH_SHORT).show();
6869
}
6970
});
70-
viewHolder.textView.setText((position + 1) + ".");
71+
viewHolder.textViewPos.setText((position + 1) + ".");
72+
viewHolder.textViewData.setText(mDataset.get(position));
73+
mItemManger.bind(viewHolder.itemView, position);
7174
}
7275

7376
@Override
@@ -77,7 +80,7 @@ public long getItemId(int position) {
7780

7881
@Override
7982
public int getItemCount() {
80-
return mDataset.length;
83+
return mDataset.size();
8184
}
8285

8386
@Override

demo/src/main/res/layout/listview_item.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
android:layout_height="wrap_content" />
5555

5656
<TextView
57+
android:id="@+id/text_data"
5758
android:layout_width="match_parent"
5859
android:layout_height="match_parent"
5960
android:tag="Hover"

0 commit comments

Comments
 (0)