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

片段中的空捆绑包,在片段中获取捆绑包的正确方法是什么?

顾高扬
2023-03-14

我有一个包含多个按钮的活动,当单击一个按钮时,将打开一个包含两个片段的新活动。

我试图根据按下的按钮在其中一个片段中显示一个回收器视图。问题是捆绑包为空,所以回收器视图不显示。

捆绑包在<code>onAttach

碎片

公共类MyFragment扩展片段{

private OnFragmentInteractionListener mListener;
private static TextView input ;
private static RecyclerView rv ;
private Handler mhandler = new Handler();
public  Bundle bundle;
public String data;

public MyFragment() {
    // Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

     View view =inflater.inflate(R.layout.fragment_my, container, false);
      input  =view.findViewById(R.id.input);
       rv =view.findViewById(R.id.rv);

    return view;
}
public void setTextView(String text){

    input.setText(text);

    String[] numberList = input.getText().toString();
    final Integer[] numbers = new Integer[numberList.length];

    ArrayList<String> List ;
    LinearLayoutManager llm = new LinearLayoutManager(getActivity());
    rv.setLayoutManager(llm);
    ListAdapter adapter = new ListAdapter() ;
    rv.setAdapter(adapter);

    System.out.println("setextview "+bundle);

    if(bundle != null){
        if (sort1.equals("se")) {
            ClassA m1 = new ClassA();
            List = m1.etap(numbers);
            adapter.setList(mystepsList);

        }else if (sort1.equals("in")) {
            ClassB = new ClassB();
            List = m1.etap(numbers);
            adapter.setList(mystepsList);
        } }
@Override
public void onAttach(Context context) {
    super.onAttach(context);
    if (context instanceof OnFragmentInteractionListener) {

    } else {
        throw new RuntimeException(context.toString()
                + " must implement OnFragmentInteractionListener");
    }
    bundle = getActivity().getIntent().getExtras();
    sort1 =b.getString("value");
    System.out.println("onAttach "+bundle);
}
public interface OnFragmentInteractionListener {

    void onFragmentInteraction(Uri uri);
}}

共有2个答案

欧阳德运
2023-03-14

尝试使用这段代码将数据从活动传递到片段

活动内容

Bundle bundle = new Bundle();
bundle.putString("edttext", "From Activity");
// set Fragmentclass Arguments
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);

碎片

Bundle bundle= getArguments();

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
     Bundle bundle= getArguments();
      if(bundle!=null){
         String strtext = bundle.getString("edttext"); 
       }

    return inflater.inflate(R.layout.fragment, container, false);
}
商运锋
2023-03-14

如果get extra为null或null,您可以使用它,如果不是null,您也可以通过containsKey()交叉检查要获取的密钥,以检查捆绑包是否具有与此密钥相关的数据。

Bundle bundle = getIntent.getExtras();
    if (bundle!=null && bundle.containsKey("value") {
            boolean value = bundle.getStringExtra("value");
    } else {
        Log.i("MainActivity", "Bundle is Null or don't have key");

    }
 类似资料:
  • 您上载了一个APK或Android应用程序捆绑包,该捆绑包具有活动、活动别名、服务或广播接收器(带有意图过滤器),但没有“Android:exported”属性集。无法在Android 12或更高版本上安装此文件。见:开发者。Androidcom/about/versions/12/behavior-changes-12#导出 在play store console中上载捆绑包时在play sto

  • 我试图在Felix中添加一个新的OSGI包(没有Karaf)作为ActiveMQ客户端(消息发送方)。 ActiveMQ客户端在非OSGI环境中运行良好。但当我在Felix中使用相同的代码(稍加修改)时,它会抛出以下错误: org.osgi.framework.捆绑异常:无法解决com.packtpub.felix.bookshelf-库存-impl-mock[7](R 7.3):缺少需求[com

  • 设置: 具有一个片段的活动,该片段通过单击按钮进行实例化。在fragment的构造函数中,使用了Bundle。在Bundle和ArrayList中 问题:分离片段时,字符串(姓氏)会按预期销毁,但数组列表会持续存在。因此,在调用片段的新实例时,会出现前一个ArrayList条目。回调不是问题所在。该行为也会在没有回调的情况下出现。 我已经检查了变量(和)和在点片段构造函数(),片段在方法()和片段

  • 我正在将我的spring-java项目转移到OSGi。 我有一些依赖项,这些依赖项在spring ebr repo或maven repo中不能作为包提供。处理它们的最佳方法是什么? null

  • 问题内容: 编辑:Symfony最佳做法回答了我的大部分问题。 关于我的Symfony2应用程序,我有几个问题。 它将有一个前端和一个后端,并且它们将使用一些通用代码(例如日期显示器,分页器,一些经常使用的模板等)。 因此,我创建了一个FrontendBundle和一个BackendBundle,它们分别包含各自的布局。第一个问题:为前端和后端创建捆绑包(这是甚至没有控制器的“通用”捆绑包)的优良

  • 我有一个包在 此文件夹包含: 然后我在中注册: 这样做后,网站根本无法工作。日志上说: PHP致命错误:未捕获错误:在/var/www/html/symproject/app/AppKernel中找不到类“MyCompany\Action\Provider\MyAppProvider\Bundle\MyAppBundle”。php:20\n堆栈跟踪:\n#0/var/www/html/sympro