嗨我的小应用程序有问题。 所以我使用碎片。一个是列表视图,另一个是textView。当我单击ListView时,texView打印标题单击。 在肖像中,我获得了ListView,并在Landscape中获得了2 Frag。 它工作正常,但当我改变方向并点击(精细它的工作)并返回并再次更改方向,然后单击App Stop工作并打印弹出窗口,但我可以在后面看到意图已经工作,textViex改变了。
您是否知道问题所在的位置。我在Frag ListView中拥有最重要的代码:
@Override
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
//variable values is an array of string
ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, values){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view =super.getView(position, convertView, parent);
TextView textView=(TextView) view.findViewById(android.R.id.text1);
textView.setTextColor(ContextCompat.getColor(getContext(), R.color.flatWhite));
return view;
}
};
setListAdapter(adapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id){
String item = (String)getListAdapter().getItem(position);
TextFragment tf = (TextFragment)getFragmentManager().findFragmentById(R.id.textFrag);
if(tf != null && tf.isInLayout()){
tf.setText(item);
}else{
Intent intent = new Intent(getActivity(), TextActivity.class);
intent.putExtra("value", item);
startActivity(intent);
}
}
答案 0 :(得分:0)
在运行时(例如屏幕方向)更改配置时,Android通常会销毁应用程序的现有活动或片段并重新创建它。
您有以下选择: 锁定屏幕方向
或
阻止活动重新创建 通过在AndroidManifest.xml中的Activity上设置android:configChanges标志来处理方向更改的另一种最常见的解决方案。
android:configChanges="orientation|screenSize|keyboardHidden"
或者 保存基本状态 这是在方向更改期间保存活动或片段的基本数据的最常见情况。您可以在方向更改期间保存Bundle中的原始数据(如String,Boolean,Integers或Parcelable对象),并在重新创建Activity时读取相同的数据。