如何从片段到活动而不会干扰片段的可重用性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从片段到活动而不会干扰片段的可重用性相关的知识,希望对你有一定的参考价值。

现在这让我烦恼不已。

我想从片段中获取活动而不会干扰片段的可重用性。这意味着我无法直接从片段中启动Intent到片段当前附加到的活动。

这是有问题的代码

//This is the code inside the fragment 

public void onStart() {
    super.onStart();
    View view = getView();

    switch (position){
        //case 1 is the case when the user clicks the ADD List Item from a ListFragment. 
        //Position is the position of ADD in the List Fragment.
        case 1:{
            Intent intent = new Intent(/*what exactly should I put here?*/  ,  
        /*this is where the reference to activity the fragment is attached to goes.
            But we dont know what activty the fragment is attached to, as it is reusable 
         and may get attached to different activity at different times*/);
        }

        case 2:{
            //this is the case when user decides to view the entered text in the array list.
            TextView textView = (TextView)view.findViewById(R.id.display_name);
            int size = workout.arrayList.size();
            Object[] array = workout.arrayList.toArray();
            for(int i=0;i<array.length;i++){
                textView.setText((String)array[i] + "
");
            }
        }
    }

}

我觉得数据可能不够,虽然我不知道还有什么可以提供,对不起。

如果需要更多数据,请告诉我。

答案

在Fragment中,我们使用以下方法获取Intent的Context:

Intent intent = new Intent(getActivity(),AnyActivity.class);

要么

Intent intent = new Intent(getView.getContext(),AnyActivity.class);

AnyActivity()可以是任何活动,包括目前拥有Fragment的活动。

另一答案

你可以打开像这样的活动..

        Intent intent = new Intent(getActivity(),SameActivity.class);

      intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

更新要为不同的值重用片段,请在事务期间将参数传递给片段...

      Bundle bundle = new Bundle();
      bundle.put("className", "SameActivity");
      fragment.setArguments(bundle);

在fragment中从bundle获取类名...不同的类将不同的参数作为bundle传递给..

在OtherActivity捆绑包看起来像这样..

      Bundle bundle = new Bundle();
      bundle.put("className", "OtherActivity");
      fragment.setArguments(bundle);

以上是关于如何从片段到活动而不会干扰片段的可重用性的主要内容,如果未能解决你的问题,请参考以下文章

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

卡住了从活动到片段的移植

如何在片段而不是活动中使用 setContentView

sql片段

如何将字符串数据从活动发送到片段?

使用绑定从片段访问父活动的 UI 元素