'static'方法修饰符不适用于Android窗口小部件

问题描述 投票:-2回答:2

在我的Android应用程序中,我想将此方法更改为静态方法,但是当我在方法签名中添加“静态”时,我的IDE告诉我,不能从静态上下文中引用非静态上下文(在[C0 ]。

findViewByID(R.id.listView)

如何使此方法静态化?

java android non-static
2个回答
2
投票

您应将此上下文和包含public void populateListView(ArrayList<Income> incomeArray) { ArrayList<Income> array = incomeArray; ArrayAdapter<Income> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, array); ListView listView = (ListView) findViewById(R.id.listView); listView.setAdapter(adapter); 的视图传递到此方法。静态方法无法访问非静态类成员。


1
投票

使它们成为全局变量,并从函数中初始化值或将它们作为参数传递,您正在使用的不是静态函数public static void populateListView(ArrayList<Income> incomeArray, Context context, View root){ ArrayList<Income> array = incomeArray; ArrayAdapter<Income> adapter = new ArrayAdapter<>(context, android.R.layout.simple_list_item_1, array); ListView listView = (ListView) root.findViewById(R.id.listView); listView.setAdapter(adapter);

© www.soinside.com 2019 - 2024. All rights reserved.