@@ -11,7 +11,7 @@ import AndroidKit
1111public struct AndroidListView {
1212
1313 let items : [ String ]
14-
14+
1515 public init < C> ( _ data: C , @ViewBuilder content: ( C . Element ) -> Text ) where C: Collection , C. Element: Identifiable {
1616 self . items = data. map { _TextProxy ( content ( $0) ) . rawText }
1717 }
@@ -34,16 +34,31 @@ extension AndroidListView {
3434
3535 func createView( context: AndroidContent . Context ) -> AndroidWidget . ListView {
3636 let view = AndroidWidget . ListView ( context)
37- let adapterContext = ListViewAdapter . Context ( items: items)
38- let swiftObject = SwiftObject ( adapterContext)
39- let adapter = ListViewAdapter ( swiftObject: swiftObject)
40- view. setAdapter ( adapter. as ( Adapter . self) )
37+ updateView ( view)
4138 return view
4239 }
4340
4441 func updateView( _ view: AndroidWidget . ListView ) {
45- let adapterContext = ListViewAdapter . Context ( items: items)
46- let adapter = view. getAdapter ( ) . as ( ListViewAdapter . self) as! ListViewAdapter
47- adapter. context = adapterContext
42+ let layout = try ! JavaClass < R . layout > ( )
43+ let resource = layout. simple_list_item_1
44+ let objects : [ JavaObject ? ] = items. map { JavaString ( $0) }
45+ let adapter = ArrayAdapter < JavaObject > (
46+ context: view. getContext ( ) ,
47+ resource: resource,
48+ objects: objects
49+ )
50+ view. setAdapter ( adapter. as ( Adapter . self) )
4851 }
4952}
53+
54+ extension JavaClass < R . layout > {
55+
56+ @JavaStaticField ( isFinal: true )
57+ public var list_view_row : Int32
58+ }
59+
60+ extension JavaClass < R . id > {
61+
62+ @JavaStaticField ( isFinal: true )
63+ public var textView : Int32
64+ }
0 commit comments