当前位置: 首页 > 知识库问答 >
问题:

如何用另一个片段中的数据填充片段中的listview?

孟鹏海
2023-03-14

我试图使用另一个片段中的数据填充我的Listview。

我可以从另一个片段获取数据,但当我尝试创建listview对象时,它返回null。

结果,该应用程序正在崩溃。

我从一个片段中获取用户的数据,然后从另一个片段中调用一个方法来传递数据。我正在第二个方法的poplist()方法中创建listview对象和数组适配器。但是,由于空指针异常,应用程序正在崩溃。请帮忙。

public class WishListFragment extends Fragment {
   ArrayList<String> wishListTitles = new ArrayList<String>();
   View rootView;
   ListView wishListView;

   @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
      Context context = getActivity();
      rootView = inflater.inflate(R.layout.fragment_wish_list, container, false);
      return rootView;
   }

   // Another fragment gets the data from user as strings and calls this method
public void popList(String str1, String str2, String str3, Context context) 
{
 // LibModel is a pojo, I am using its constructor to set the values.

 LibModel lm = new LibModel(str1,str2,str3);

    Log.w("Title:",lm.getTitle());
    Log.w("Author:",lm.getAuthor());
    Log.w("Language:",lm.getLang());

        wishListTitles.add(lm.getTitle());

        // I get this on the log, so the ArrayList is made correctly
        Log.w("ArrayList:",wishListTitles.get(0));

        // The listView gives Null Pointer exception and crashes the app
        wishListView = (ListView) rootView.findViewById(R.id.wl_lv);
        ArrayAdapter<String> wishListAdapter = new ArrayAdapter<String>(context,
            android.R.layout.simple_list_item_1,wishListTitles);

        wishListView.setAdapter(wishListAdapter);
    }
}

我尝试了以下方法,但不起作用

  1. 在制作Listview时使用getViewhtml" target="_blank">方法而不是rootView。
  2. 尝试在onCreateView()方法中创建listview,但之后listview对象为空,我得到空指针。

我无法找到一种方法来设置listview的适配器,因为它返回Null。

共有1个答案

卢嘉誉
2023-03-14

我建议在包含数据的片段中进行接口回调。还要在包含片段的活动中保留列表视图的引用。回调后,将执行接口函数,您可以从那里更新列表视图。

 类似资料:
  • 如何在成功提交数据时将数据从本地数据库刷新到RecyclerView?我使用应用程序上的选项卡。函数提交数据,如果成功,数据将存储在中。 关于的数据将在中显示。但是发生的情况是,我必须滑动,然后滑动到,然后滑动到我的上成功显示的新的数据。 主要活动: 一切都很顺利,只是希望表单提交的时候数据能显示出来,可以直接在第3页签上查看

  • 知道TargetFragment现在已被弃用,如何从DialogFragment调用片段的方法? 过去,我可以这样做: 父级碎片 对话框碎片 这不再可能,因为目标碎片现已弃用。 我读到可以使用setFragmentResultListener()传递变量,但是如何从DialogFragment调用ParentFragment.myMethod()方法呢?

  • 问题内容: 我想从fragmentA调用FragmentB(Class)的方法,我试图通过在fragmentA(class)中创建fragmentb的对象来尝试,但是在这里它不起作用是该类中fragmentA的代码,我有一个方法可以通过FragmentB类的方法 我想称这个为fragmentB的方法 我尝试通过fragmentA方法编写此代码,但出现错误 问题答案: 试试这个解决方案:

  • 我知道的一种方法是通过活动。我们可以将数据从一个片段发送到另一个活动,再从一个活动发送到另一个片段。还有其他方法吗?

  • 我有两个活动,在活动1中有碎片,在活动2中有碎片 fragment1和fragment2扩展自FragmentActivity1,activity2扩展自AppCompatActivity 我想将字符串值从fragment1发送到fragment2,而不获取空值。我希望你能理解这个问题。谢谢

  • 先生/女士,我想使用android JAVA将一个片段回调到另一个片段。我试图找到问题,但没有找到解决方案。若我使用接口,它会向活动发送回调响应,这是我不想要的。非常感谢。