MyTetra Share
Делитесь знаниями!
CrimeFragment.java
14.04.2017
10:29
Раздел: Android - books - AndroidProgramming2e - 7 UI-фрагменты и FragmentManager
CrimeFragment.java

CrimeFragment.java

package com.bignerdranch.android.criminalintent; 
 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.EditText; 
 
public class CrimeFragment extends Fragment { 
 
    private Crime mCrime; 
    private EditText mTitleField; 
 
    //~ Fragment.onCreate(…) и другие методы 
    //~ жизненного цикла Fragment должны быть открытыми, потому что они будут вызываться произвольной активностью, которая станет хостом фрагмента. 
    //~ Мы не заполняем представление фрагмента. Экземпляр фрагмента настраивается в Fragment. 
    //~ onCreate(…), но создание и настройка представления фрагмента осуществляются 
    //~ в другом методе жизненного цикла фрагмента: 
 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        mCrime = new Crime(); 
    } 
 
    //~ Именно в этом методе заполняется макет представления фрагмента, а заполненный объект View возвращается активности-хосту. Параметры LayoutInflater 
    //~ и ViewGroup необходимы для заполнения макета. Объект Bundle содержит данные, 
    //~ которые используются методом для воссоздания представления по сохраненному 
    //~ состоянию. 
    //~ В методе onCreateView(…) мы явно заполняем представление фрагмента, вызывая 
    //~ LayoutInflater.inflate(…) с передачей идентификатора ресурса макета. Второй 
    //~ параметр определяет родителя представления, что обычно необходимо для правильной настройки виджета. Третий параметр указывает, нужно ли включать заполненное представление в родителя. Мы передаем false, потому что представление будет добавлено в коде активности. 
 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
        //заполнем разметку fragment_crime.xml. 
        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) { 
 
            } 
             
            //~ В методе onTextChanged(…) мы вызываем toString() для объекта CharSequence, 
            //~ представляющего ввод пользователя. Этот метод возвращает строку, которая затем используется для задания заголовка Crime. 
            @Override 
            public void onTextChanged(CharSequence s, int start, int before, int count) { 
                mCrime.setTitle(s.toString()); 
            } 
 
            @Override 
            public void afterTextChanged(Editable s) { 
 
            } 
        }); 
 
        return v; 
    } 
} 

 
MyTetra Share v.0.52
Яндекс индекс цитирования