【发布时间】:2017-05-25 06:21:09
【问题描述】:
我是 android 的初学者,我使用片段创建了应用程序。其中,当我旋转屏幕时(在片段屏幕中),它会离开片段屏幕并跳转到主活动屏幕。为什么?请帮我解决这个问题。
我的主要活动, Individualuser_Safmical.java:
public class IndividualUser_Safmical extends AppCompatActivity
{
FragmentManager fm;
@Override
protected void onCreate(Bundle savedInstanceState) {
fm = getFragmentManager();
super.onCreate(savedInstanceState);
setContentView(R.layout.i_activity_safmical);
}
public void shopbycategory(View v) {
fm.beginTransaction().replace(R.id.content_frame, new ShopFragment()).addToBackStack("shop").commit();
}
}
我的片段,ShopFrgment.java:
public class ShopFragment extends Fragment {
FragmentManager fm;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
View rootview= inflater.inflate(R.layout.i_fragment_shop,container,false);
String[] list1={"Chemicals","Pigments","Uniforms","Safety Products"};
ListView listView= (ListView) rootview.findViewById(R.id.mainlist);
ArrayAdapter<String> listviewadapter=new ArrayAdapter<String>(getActivity(),android.R.layout.simple_list_item_1,list1);
listView.setAdapter(listviewadapter);
fm =getFragmentManager();
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if(position==0){
fm.beginTransaction().replace(R.id.content_frame,new Chemical_Fragment()).addToBackStack("shop").commit();
}
if(position==1){
fm.beginTransaction().replace(R.id.content_frame,new Pigments_Fragment()).addToBackStack("shop").commit();
}
if(position==2){
fm.beginTransaction().replace(R.id.content_frame,new Uniforms_Fragment()).addToBackStack("shop").commit();
}
if(position==3){
fm.beginTransaction().replace(R.id.content_frame,new SafetyProducts_Fragment()).addToBackStack("shop").commit();
}
}
});
return rootview;
}
}
【问题讨论】:
-
这是因为在旋转屏幕上,活动被破坏并重新创建,并且您的片段没有自己的存在,而活动确实有
-
@Abdul kawee - 那我应该更正什么?
-
查看@harsh下面的答案
标签: android android-fragments android-activity onsaveinstancestate onrestoreinstancestate