[英]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.