java - 在fragment中findViewById,如何在onCreateView之外获取 View

标签 java android listview parsing adapter

简单的json解析,但我做不到,因为每当我想构建它时,它就会崩溃,我认为这是因为“findViewById”。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    showDrugs(null);
    return inflater.inflate(R.layout.fragment_first, container, false);
}
private void showDrugs(String search) {
    ListView lvDrugs = (ListView) getView().findViewById(R.id.lvDrugs);
    MyRealm myRealm = new MyRealm(getActivity().getApplicationContext());
    RealmResults<Drug> drugs = myRealm.getDrugs(search);
    DrugListAdapter adapter = new DrugListAdapter(getActivity().getApplicationContext(), drugs);
    lvDrugs.setAdapter(adapter);
}

最佳答案

在展开 View 之前,您无法调用 showDrugs(),因为 getView()null

最简单的方法是在onViewCreated()中调用showDrugs(),它在onCreateView()之后调用,您可以在确保 getView() 不是 null

关于java - 在fragment中findViewById,如何在onCreateView之外获取 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40821971/

相关文章:

java - 多个小型 spritesheet 还是一个巨大的 spritesheet 以提高性能? ---(java游戏开发)

java - 为 Android 平台评估 Java 脚本(例如 Python)

java - 使用动态类名以新 Intent 启动 Activity

android - android 中的自定义 listView 不起作用

java - Listview 的 Intent 值(json 数组)

android - 通过 Fedor onitemclick 实现使用 LazyList

javascript - 在 camunda 进程中的进程变量中传递 json

java - 如果我有 2 个引用类型,具有相同的值,是否意味着内存中只有 1 个对象

java - 仅花括号方法

android - 如何将推送通知从 Web 应用程序发送到 Android 应用程序?