rei*_*ley 4 android android-fragments
我试图创建一个Fragment在显示回来之后保留其状态的东西.
为此,我尝试使用getFragmentManager().saveFragmentInstanceState()内部onPause()然后调用setInitialSavedState()内部onCreateView().
我面临的问题是我不知道如何准确地使用它们以及何时调用它们.
这两个函数都采用类型的参数,SavedState我不知道如何使用.
码:
public class AudioContainerFragmentClass extends Fragment implements
OnClickListener {
final String TAG = "AudioContainerFragmentClass";
private Button bSetName;
private TextView tvName;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = null;
try {
Log.e(TAG, "onCreateView()");
view = inflater.inflate(R.layout.audio_fragment_container, null);
bSetName = (Button) view.findViewById(R.id.bSetName);
tvName = (TextView) view.findViewById(R.id.tvName);
bSetName.setOnClickListener(this);
if(savedInstanceState != null){
setInitialSavedState(/* WHICH SavedState OBJECT TO PASS */);
}
Log.e(TAG, "onCreate()");
} catch (Exception e) {
Log.e(TAG, "onCreateView(): " + e.toString());
}
return view;
}
/*
@Override
public void onSaveInstanceState(Bundle outState) {
Log.e(TAG, "onSaveInstanceState()");
super.onSaveInstanceState(outState);
}
*/
@Override
public void onClick(View v) {
tvName.setText("sometext");
}
@Override
public void onPause() {
super.onPause();
getFragmentManager().saveFragmentInstanceState( /* WHAT TO ADD HERE */);
}
}
Run Code Online (Sandbox Code Playgroud)
只是自己调查一下,并认为我会记录我发现的东西.
setInitialSavedState()Fragment在附加到a之后无法调用Activity,如第491行的Android源代码中所述.
setInitialSavedState()旨在在代码中实例化片段后立即使用.例如:
AudioContainerFragmentClass newFrag = new AudioContainerFragmentClass();
newFrag.setInitialSavedstate(savedStateObject);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3264 次 |
| 最近记录: |