Skip to content

Commit 8abdb26

Browse files
committed
Update Android template
1 parent d2f2b17 commit 8abdb26

File tree

4 files changed

+39
-9
lines changed

4 files changed

+39
-9
lines changed

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

Lines changed: 9 additions & 8 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.view.View
1112
import android.widget.LinearLayout
1213
import androidx.constraintlayout.widget.ConstraintLayout
1314
import androidx.recyclerview.widget.RecyclerView
@@ -23,25 +24,25 @@ import org.json.JSONObject
2324
class MainActivity : AppCompatActivity() {
2425
override fun onCreate(savedInstanceState: Bundle?) {
2526
super.onCreate(savedInstanceState)
26-
setContentView(R.layout.activity_main)
27-
val layoutMain = findViewById<ConstraintLayout>(R.id.layout_main)
27+
// setContentView(R.layout.activity_main)
28+
// val layoutMain = findViewById<ConstraintLayout>(R.id.layout_main)
2829

2930
// Initialize Chaquopy
3031
if (!Python.isStarted()) {
3132
Python.start(AndroidPlatform(this))
3233
}
3334
val py = Python.getInstance()
3435

36+
val pyModule = py.getModule("app/main")
37+
val pyLayout = pyModule.callAttr("main", this).toJava(View::class.java)
38+
setContentView(pyLayout)
39+
3540
// val createButtonModule = py.getModule("create_button")
3641
// val pyButton = createButtonModule.callAttr("create_button", this).toJava(Button::class.java)
3742
// layoutMain.addView(pyButton)
3843

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 createLayoutModule = py.getModule("create_pn_layout")
44-
// val pyLayout = createLayoutModule.callAttr("create_pn_layout", this).toJava(LinearLayout::class.java)
44+
// val createWidgetsModule = py.getModule("create_widgets")
45+
// val pyLayout = createWidgetsModule.callAttr("create_widgets", this).toJava(LinearLayout::class.java)
4546
// layoutMain.addView(pyLayout)
4647

4748
// val createConstraintLayoutModule = py.getModule("create_constraint_layout")

apps/android_pythonnative_3/app/src/main/python/app/__init__.py

Whitespace-only changes.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import pythonnative as pn
2+
3+
4+
def main(context):
5+
layout = pn.LinearLayout(context)
6+
7+
label = pn.Label(context, "This is a PythonNative label")
8+
layout.add_view(label)
9+
10+
button = pn.Button(context, "Click me")
11+
layout.add_view(button)
12+
13+
for i in range(100):
14+
button = pn.Button(context, "Click me")
15+
layout.add_view(button)
16+
17+
return layout.native_instance

libs/templates/android_template/app/src/main/java/com/pythonnative/android_template/MainActivity.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,22 @@ package com.pythonnative.android_template
22

33
import androidx.appcompat.app.AppCompatActivity
44
import android.os.Bundle
5+
import android.view.View
6+
import com.chaquo.python.Python
7+
import com.chaquo.python.android.AndroidPlatform
58

69
class MainActivity : AppCompatActivity() {
710
override fun onCreate(savedInstanceState: Bundle?) {
811
super.onCreate(savedInstanceState)
9-
setContentView(R.layout.activity_main)
12+
// setContentView(R.layout.activity_main)
13+
14+
// Initialize Chaquopy
15+
if (!Python.isStarted()) {
16+
Python.start(AndroidPlatform(this))
17+
}
18+
val py = Python.getInstance()
19+
val pyModule = py.getModule("app/main")
20+
val pyLayout = pyModule.callAttr("main", this).toJava(View::class.java)
21+
setContentView(pyLayout)
1022
}
1123
}

0 commit comments

Comments
 (0)