我有一个ImageView。我希望在点击Imageview时从一个片段移动到另一个片段,就像我们可以从一个活动移动到另一个活动一样
Intent i=new Intent(MainActivity.this,SecondActivity.class);
startActivity(i);
我怎样才能做到这一点?任何人都可以一步一步向我解释吗?
我的代码如下:
mycontacts.class
public class mycontacts extends Fragment {
public mycontacts() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View v = super.getView(position, convertView, parent);
ImageView purple=(ImageView)v.findViewById(R.id.imageView1);
purple.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//how to go to tasks fragment from here???
}
});
return view;
}
}
tasks.class
public class tasks extends Fragment {
public tasks() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_layout_one, container,
false);
return view;
}
}
purple.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Fragment fragment = new tasks();
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.content_frame, fragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
你写上面的代码......我们用我们的片段替换R.id.content_frame。希望这能帮助你
您可以使用FragmentManager事务移动到另一个片段。片段不能像活动一样被调用。碎片存在于活动的存在之中。
您可以通过编写以下代码来调用另一个片段:
FragmentTransaction t = this.getFragmentManager().beginTransaction();
Fragment mFrag = new MyFragment();
t.replace(R.id.content_frame, mFrag);
t.commit();
这里“R.id.content_frame”是要替换片段的布局的id。
您还可以在替换时添加其他片段。
在你的onClickListener.onClick里面,放
getFragmentManager().beginTransaction().replace(R.id.container, new tasks()).commit();
换句话说,在你的mycontacts.class中
public class mycontacts extends Fragment {
public mycontacts() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View v = super.getView(position, convertView, parent);
ImageView purple = (ImageView) v.findViewById(R.id.imageView1);
purple.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
getFragmentManager()
.beginTransaction()
.replace(R.id.container, new tasks())
.commit();
}
});
return view;
}
}
现在,请记住R.id.container
是调用片段的活动的容器(FrameLayout或其他布局)