Skip to content

Commit 931b07e

Browse files
committed
Add create_widgets.py
1 parent b8a621e commit 931b07e

File tree

2 files changed

+81
-3
lines changed

2 files changed

+81
-3
lines changed

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import android.widget.Button
88
import android.widget.ImageView
99
import android.widget.TextView
1010
import android.graphics.Color
11+
import android.widget.LinearLayout
1112
import androidx.constraintlayout.widget.ConstraintLayout
1213
import androidx.recyclerview.widget.RecyclerView
1314
import com.chaquo.python.PyException
@@ -35,9 +36,13 @@ class MainActivity : AppCompatActivity() {
3536
// val pyButton = createButtonModule.callAttr("create_button", this).toJava(Button::class.java)
3637
// layoutMain.addView(pyButton)
3738

38-
val createRecyclerViewModule = py.getModule("create_recycler_view")
39-
val pyRecyclerView = createRecyclerViewModule.callAttr("create_recycler_view", this).toJava(RecyclerView::class.java)
40-
layoutMain.addView(pyRecyclerView)
39+
val createWidgetsModule = py.getModule("create_widgets")
40+
val pyLayout = createWidgetsModule.callAttr("create_widgets", this).toJava(LinearLayout::class.java)
41+
layoutMain.addView(pyLayout)
42+
43+
// val createRecyclerViewModule = py.getModule("create_recycler_view")
44+
// val pyRecyclerView = createRecyclerViewModule.callAttr("create_recycler_view", this).toJava(RecyclerView::class.java)
45+
// layoutMain.addView(pyRecyclerView)
4146

4247
// Existing code for displaying plot
4348
// val imageView = findViewById<ImageView>(R.id.image_home)
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
from java import cast, jclass
2+
3+
def create_widgets(context):
4+
# Java Classes
5+
LinearLayout = jclass('android.widget.LinearLayout')
6+
Button = jclass('android.widget.Button')
7+
TextView = jclass('android.widget.TextView')
8+
EditText = jclass('android.widget.EditText')
9+
CheckBox = jclass('android.widget.CheckBox')
10+
RadioButton = jclass('android.widget.RadioButton')
11+
ImageView = jclass('android.widget.ImageView')
12+
ProgressBar = jclass('android.widget.ProgressBar')
13+
Switch = jclass('android.widget.Switch')
14+
ToggleButton = jclass('android.widget.ToggleButton')
15+
SeekBar = jclass('android.widget.SeekBar')
16+
17+
# Create LinearLayout
18+
layout = LinearLayout(context)
19+
layout_params = LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,
20+
LinearLayout.LayoutParams.WRAP_CONTENT)
21+
layout.setLayoutParams(layout_params)
22+
layout.setOrientation(LinearLayout.VERTICAL)
23+
24+
# Create Button
25+
button = Button(context)
26+
button.setText('Button created in Python')
27+
layout.addView(button)
28+
29+
# Create TextView
30+
textView = TextView(context)
31+
textView.setText('TextView created in Python')
32+
layout.addView(textView)
33+
34+
# Create EditText
35+
editText = EditText(context)
36+
editText.setHint('EditText created in Python')
37+
layout.addView(editText)
38+
39+
# Create CheckBox
40+
checkBox = CheckBox(context)
41+
checkBox.setText('CheckBox created in Python')
42+
layout.addView(checkBox)
43+
44+
# Create RadioButton
45+
radioButton = RadioButton(context)
46+
radioButton.setText('RadioButton created in Python')
47+
layout.addView(radioButton)
48+
49+
# Create ImageView
50+
imageView = ImageView(context)
51+
layout.addView(imageView)
52+
53+
# Create ProgressBar
54+
progressBar = ProgressBar(context)
55+
layout.addView(progressBar)
56+
57+
# Create Switch
58+
switch = Switch(context)
59+
switch.setText('Switch created in Python')
60+
layout.addView(switch)
61+
62+
# Create ToggleButton
63+
toggleButton = ToggleButton(context)
64+
toggleButton.setTextOn('On')
65+
toggleButton.setTextOff('Off')
66+
layout.addView(toggleButton)
67+
68+
# Create SeekBar
69+
seekBar = SeekBar(context)
70+
layout.addView(seekBar)
71+
72+
# Return layout
73+
return layout

0 commit comments

Comments
 (0)