Skip to content

Commit e0d3cc9

Browse files
committed
Update create_recycler_view.py
1 parent 6f3c8fa commit e0d3cc9

File tree

2 files changed

+35
-41
lines changed

2 files changed

+35
-41
lines changed

apps/android_pythonnative_3/app/src/main/java/com/pythonnative/pythonnative/MainActivity.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,13 @@ class MainActivity : AppCompatActivity() {
4040
// val pyLayout = createWidgetsModule.callAttr("create_widgets", this).toJava(LinearLayout::class.java)
4141
// layoutMain.addView(pyLayout)
4242

43-
val createConstraintLayoutModule = py.getModule("create_constraint_layout")
44-
val pyLayout = createConstraintLayoutModule.callAttr("create_constraint_layout", this).toJava(ConstraintLayout::class.java)
45-
layoutMain.addView(pyLayout)
43+
// val createConstraintLayoutModule = py.getModule("create_constraint_layout")
44+
// val pyLayout = createConstraintLayoutModule.callAttr("create_constraint_layout", this).toJava(ConstraintLayout::class.java)
45+
// layoutMain.addView(pyLayout)
4646

47-
// val createRecyclerViewModule = py.getModule("create_recycler_view")
48-
// val pyRecyclerView = createRecyclerViewModule.callAttr("create_recycler_view", this).toJava(RecyclerView::class.java)
49-
// layoutMain.addView(pyRecyclerView)
47+
val createRecyclerViewModule = py.getModule("create_recycler_view")
48+
val pyRecyclerView = createRecyclerViewModule.callAttr("create_recycler_view", this).toJava(RecyclerView::class.java)
49+
layoutMain.addView(pyRecyclerView)
5050

5151
// Existing code for displaying plot
5252
// val imageView = findViewById<ImageView>(R.id.image_home)
Lines changed: 29 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,40 @@
1-
from java import cast, chaquopy, dynamic_proxy, jarray, jclass, static_proxy
2-
from androidx.recyclerview.widget import LinearLayoutManager
3-
from android.view import LayoutInflater
4-
from android.widget import TextView
5-
from android.content import Context
1+
from java import jclass, static_proxy
62

3+
RecyclerView = jclass('androidx.recyclerview.widget.RecyclerView')
4+
LinearLayoutManager = jclass('androidx.recyclerview.widget.LinearLayoutManager')
5+
Context = jclass('android.content.Context')
76

8-
class MyAdapter(static_proxy("androidx.recyclerview.widget.RecyclerView$Adapter")):
9-
def __init__(self, context, items):
10-
self.context = context
11-
self.items = items
7+
# Create a ViewHolder
8+
class MyViewHolder(static_proxy(RecyclerView.ViewHolder)):
9+
def __init__(self, itemView):
10+
super(MyViewHolder, self).__init__(itemView)
11+
# You can add your views here
12+
# self.myTextView = itemView.findViewById(R.id.myTextView)
13+
14+
# Create a RecyclerView Adapter
15+
class MyAdapter(static_proxy(RecyclerView.Adapter)):
16+
def __init__(self, myDataset):
17+
self.mDataset = myDataset
1218

1319
def onCreateViewHolder(self, parent, viewType):
14-
inflater = self.context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)
15-
view = inflater.inflate(android.R.layout.simple_list_item_1, parent, False)
16-
return MyViewHolder(view)
20+
# Inflate your layout here and create the view holder
21+
pass
1722

1823
def onBindViewHolder(self, holder, position):
19-
item = self.items[position]
20-
holder.textView.setText(item)
24+
# Set the data for your views here
25+
pass
2126

2227
def getItemCount(self):
23-
return len(self.items)
24-
28+
return len(self.mDataset)
2529

26-
class MyViewHolder(
27-
dynamic_proxy("androidx.recyclerview.widget.RecyclerView$ViewHolder")
28-
):
29-
def __init__(self, itemView):
30-
super().__init__(itemView)
31-
self.textView = cast(TextView, itemView.findViewById(android.R.id.text1))
30+
# Create the RecyclerView
31+
def create_recycler_view(context):
32+
myRecyclerView = RecyclerView(context)
33+
myLayoutManager = LinearLayoutManager(context)
34+
myRecyclerView.setLayoutManager(myLayoutManager)
3235

36+
myDataset = ['Data 1', 'Data 2', 'Data 3']
37+
myAdapter = MyAdapter(myDataset)
38+
myRecyclerView.setAdapter(myAdapter)
3339

34-
def create_recycler_view(context):
35-
# Create RecyclerView
36-
RecyclerView = dynamic_proxy("androidx.recyclerview.widget.RecyclerView")
37-
recyclerView = RecyclerView(context)
38-
# Create a layout manager for RecyclerView
39-
layoutManager = LinearLayoutManager(context)
40-
recyclerView.setLayoutManager(layoutManager)
41-
# Create an adapter for RecyclerView
42-
items = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"]
43-
adapter = MyAdapter(context, items)
44-
# Set the adapter on RecyclerView
45-
recyclerView.setAdapter(adapter)
46-
return recyclerView
40+
return myRecyclerView

0 commit comments

Comments
 (0)