CrimeFragment
3565 ワード
(以前csdnと書いてあったものを運んでくる) fragmentはコントローラであり、activityは、通常、スクリーン全体または一部のユーザーインタフェースを管理するタスクを完了させることができます.ユーザインタフェースを管理するfragmentはUI fragmentとも呼ばれ、ユーザインタフェースを管理するためにfragmentインスタンスをactivityで管理し、activityはFragmentManagerでfragment管理を管理する:activtyはそのビューレベルでfragmentを配置するビューを提供する.fragment自体は、画面に表示する機能 を有しない. activityのタスク:1.fragmentビューの位置2を配置する.管理fragmentライフサイクル 管理の2つの方式:1.レイアウトにfragment(?)を追加するfragmentとそのビューをactivityのビューにバインドし、fragmentを変更するにはactivityのビューを変更する必要があり、再びonCreate activity 2を変更する必要があります.Activityにfragmentを追加実行時にfragmentを制御できる唯一の方法 FragmentManagerクラスはfragmentを管理し、それらのビューをactivityのビュー階層に追加し、fragmentを呼び出すライフサイクルメソッド管理も担当します.1,fragmentキュー2,fragmentトランザクションロールバックスタックactivityが破棄されると、そのFragmentManagerはfragmentキューを保存し、activityが再構築されると、新しいFragmentManagerはまず保存されたfragmentキューを取得します.次にfragmentキュー を再構築する
FragmentActivity
if文のこのコードはfragmentトランザクションfragmentトランザクションを作成してコミットし、fragmentキューのfragmentを追加、削除、追加、分離、または置換するために使用されます.FragmentManagerはfragmentトランザクションのロールバックスタックを管理しています.まずgetSupportFragmentManagerメソッドを使用して現在のactivityを取得するFragmentManager fragmentがnullの場合、新しいCrimeFragmentを作成します.beginTransactionメソッドを使用してfragmentキュー(FragmentTransaction)を取得し、キューにfragmentを追加します.追加はidパラメータを入力します.1つはFragmentManagerにこのfragmentがビューの位置にあるべきであることを伝えるためです.2つ目は、Fragmentキュー内の一意の識別子として(FragmentManagerが管理するfragmentをidで取得する)
最終コミットトランザクション
Fragment fragmentを追加すると、onAttach,onCreate,onCreateViewがactivity実行状態追加を呼び出されると、activityと同期するための方法が迅速に実行されます. androidシステムに内蔵されたfragmentよりも開発者ライブラリの使用を推奨します.これにより、新しい特性を使用する場合は、サポートライブラリをアップグレードするだけで2つの重要なサポートライブラリクラスが可能になります.Fragment Fragment Activityはfragmentを使用する前提はactivityがfragmentを管理する方法を知っていることです.Fragment Activityはfragment を管理することができます.
FragmentActivity
public class CrimeActivity extends FragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_crime);
FragmentManager fragmentManager=getSupportFragmentManager();
Fragment fragment=fragmentManager.findFragmentById(R.id.fragment_container);
if(fragment==null){
fragment=new CrimeFragment();
fragmentManager.beginTransaction().add(R.id.fragment_container,fragment).commit();
}
}
}
if文のこのコードはfragmentトランザクションfragmentトランザクションを作成してコミットし、fragmentキューのfragmentを追加、削除、追加、分離、または置換するために使用されます.FragmentManagerはfragmentトランザクションのロールバックスタックを管理しています.まずgetSupportFragmentManagerメソッドを使用して現在のactivityを取得するFragmentManager fragmentがnullの場合、新しいCrimeFragmentを作成します.beginTransactionメソッドを使用してfragmentキュー(FragmentTransaction)を取得し、キューにfragmentを追加します.追加はidパラメータを入力します.1つはFragmentManagerにこのfragmentがビューの位置にあるべきであることを伝えるためです.2つ目は、Fragmentキュー内の一意の識別子として(FragmentManagerが管理するfragmentをidで取得する)
Fragment fragment=fragmentManager.findFragmentById(R.id.fragment_container);
最終コミットトランザクション
Fragment
public class CrimeFragment extends Fragment {
private Crime mCrime;
private EditText mTitleField;
// FragmentActivity
@Override
// fragment
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
mCrime=new Crime();
}
@Override
// fragment , activity onCreate
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View v=inflater.inflate(R.layout.fragment_crime,container,false);
// ( ),
mTitleField=(EditText)v.findViewById(R.id.crime_title);
mTitleField.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
mCrime.setTitle(s.toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});
return v;
}
}