Skip to content

Commit 816398a

Browse files
committed
Fixed AndroidListView
1 parent cd7eada commit 816398a

1 file changed

Lines changed: 23 additions & 8 deletions

File tree

Sources/AndroidSwiftUI/AndroidListView.swift

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import AndroidKit
1111
public 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

Comments
 (0)