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です。
replaceの場合、他のフラグメントを追加することもできます。
onClickListener.onClick内に、
getFragmentManager().beginTransaction().replace(R.id.container, new tasks()).commit();
別のWordでは、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またはその他のレイアウト)であることを思い出してください