尝试在NULL对象引用上调用虚拟方法'java.lang.String android.os.Bundle.getString(java.lang.String)'...在Fragment中

时间:2018-12-08 11:05:06

标签: java android android-fragments nullpointerexception

如何将数据从片段的RecyclerView传递到另一个fragment.i出现错误。当我启动应用程序时,该应用程序在5秒内崩溃并显示以下消息 我的RecyclerView片段。

 @Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
    final Categories categories = categoriesList.get(position);
    holder.name.setText((categories.getName()));
    Glide.with(context).load(categories.getThumbnail()).into(holder.thumbnail);
    holder.name.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
           String catId= String.valueOf(categories.getId());
            Toast.makeText(context,catId,Toast.LENGTH_SHORT).show();
            AppCompatActivity activity = (AppCompatActivity) view.getContext();
            AudioFragment myFragment = new AudioFragment();
            Bundle bundle=new Bundle();
            bundle.putString("name", catId); //key and value
            myFragment.setArguments(bundle);
            activity.getSupportFragmentManager().beginTransaction().replace(R.id.frag_container, myFragment).addToBackStack(null).commit();

        }
    });
}

新片段

public class AudioFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment

   String CAT_ID = getArguments().getString("name");
    Toast.makeText(getContext(),CAT_ID,Toast.LENGTH_SHORT).show();

    return inflater.inflate(R.layout.fragment_audio, container, false);
}


}

1 个答案:

答案 0 :(得分:0)

您可以通过创建一个静态方法来获取fragment的实例以及以下一些参数来做到这一点。

在您的片段中。

settings.AUTH_USER_MODEL

在您的活动课中。

User