繁体   English   中英

如何在Fragment类中使用Intent重定向到另一个类?

[英]How can i use intent in Fragment class for redirecting to another class?

在我的片段类中,我有一些按钮,因此当我单击这些按钮时,我想重定向到另一个Activity类。 如何在片段类中使用重定向?

fragment_services.xml

<ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="409dp" >
<Button
    android:id="@+id/button3"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="160dp"
    android:layout_height="90dp"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/textView1"
    android:layout_marginTop="18dp"
    android:background="@drawable/cloud" />
 </RelativeLayout>
 </ScrollView>
 </RelativeLayout>`

ServiceFragment.java

public class ServiceFragment extends Fragment {
private Context CurrentObj=this;
 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) 
 {
     View rootView = inflater.inflate(R.layout.fragment_services, container,   false);
     final Button backBtn=(Button)findViewById(R.id.button3);
     backBtn.setOnClickListener(new OnClickListener()
     {
            @Override
            public void onClick(View arg0)
            {
                // TODO Auto-generated method stub
                Intent redirect=new Intent(CurrentObj.getApplicationContext(),Cloud.class);
                startActivity(redirect);
            }
        });
     return rootView;
 }

}

Cloud.java

public class Cloud extends Activity{
private Context CurrentObj=this;
@Override

protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.cloud);
}

}

backBtn.setOnClickListener(new OnClickListener()
 {
        @Override
        public void onClick(View arg0)
        {
            // TODO Auto-generated method stub
            Intent redirect=new Intent(getActivity(),Cloud.class);
            getActivity().startActivity(redirect);
        }
    });

您还需要确保您的Cloud类正在扩展Activity,并且已在AndroidManifest.xml声明了Cloud Activity。

我还在您的代码中发现了一些小错误。 该行private Context CurrentObj=this; ServiceFragment类中的int将导致编译器错误,因为Fragments不是Context或ContextWrappers的子类。 您需要更改或删除片段中的这一行。

试试这个getActivity().startActivity(redirect);

你不应该忘记父母的活动。

Intent redirect=new Intent(getActivity(),Cloud.class);
                    getActivity().startActivity(redirect);

如果要使用上下文执行此操作,请执行以下操作

private Context CurrentObj=getActivity();

backBtn.setOnClickListener(new OnClickListener()
 {
        @Override
        public void onClick(View arg0)
        {
            // TODO Auto-generated method stub
            Intent redirect=new Intent(CurrentObj,Cloud.class);
            CurrentObj.startActivity(redirect);
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM