【问题标题】:how to call ArrayAdapter constructer from Fragment in Android如何从 Android 中的 Fragment 调用 ArrayAdapter 构造函数
【发布时间】:2013-06-14 08:14:49
【问题描述】:

我正在尝试将两列 ListView 添加到我的 android 应用程序中。当我创建项目时,我选择了 Fragment 选项,它通过左右滑动来创建漂亮的导航。所以我的MainActivity 扩展了FragmentActivity

我的问题是当我尝试将 AddayAdapter 添加到 ListView 时,ArrayAdapter 的构造器会查找上下文对象,但我不知道要传递它。

这是我得到错误的代码

StableArrayAdapter adapter = new StableArrayAdapter(this, R.layout.row , list);
listview.setAdapter(adapter);

当我传递“this”时,它传递了 FragmentActivity,因为该活动扩展了 FragmentActivity。但构造函数需要一个“上下文”对象。

它给出了这个错误信息

"The constructor MainActivity.StableArrayAdapter(MainActivity.DummySectionFragment, int, ArrayList<String>) is undefined"

如何传递 Context 对象?

【问题讨论】:

  • 试试这个:StableArrayAdapter adapter = new StableArrayAdapter(getActivity(), R.layout.row , list);
  • FragmentActivity.this 而不是 this

标签: java android listview android-arrayadapter


【解决方案1】:

您正在片段内设置适配器。使用

StableArrayAdapter adapter = new StableArrayAdapter(this.getActivity(), R.layout.row , list);

【讨论】:

    【解决方案2】:
    StableArrayAdapter adapter = new StableArrayAdapter(getContext(), R.layout.row , list);
    listview.setAdapter(adapter);
    

    您是否尝试过从 Fragment 传递类似的内容。尝试getContext()getApplicationContext()

    【讨论】:

    • 我在智能感知中看不到它的弹出窗口,这意味着它无法到达它们
    • 这不起作用,您是否尝试传递 yourActivity.this 或 getActivity(),让我知道这是否有效。
    猜你喜欢
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-19
    相关资源
    最近更新 更多