MyTetra Share
Делитесь знаниями!
CrimeFragment.java
29.04.2017
16:00
Раздел: Android - books - AndroidProgramming2e - 14 Базы данных SQLite
CrimeFragment.java

CrimeFragment.java

package com.bignerdranch.android.criminalintent; 
 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.Button; 
import android.widget.CheckBox; 
import android.widget.CompoundButton; 
import android.widget.CompoundButton.OnCheckedChangeListener; 
import android.widget.EditText; 
 
import java.util.Date; 
import java.util.UUID; 
 
public class CrimeFragment extends Fragment { 
 
    private static final String ARG_CRIME_ID = "crime_id"; 
    private static final String DIALOG_DATE = "DialogDate"; 
 
    private static final int REQUEST_DATE = 0; 
 
    private Crime mCrime; 
    private EditText mTitleField; 
    private Button mDateButton; 
    private CheckBox mSolvedCheckbox; 
 
    public static CrimeFragment newInstance(UUID crimeId) { 
        Bundle args = new Bundle(); 
        args.putSerializable(ARG_CRIME_ID, crimeId); 
 
        CrimeFragment fragment = new CrimeFragment(); 
        fragment.setArguments(args); 
        return fragment; 
    } 
 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        UUID crimeId = (UUID) getArguments().getSerializable(ARG_CRIME_ID); 
        mCrime = CrimeLab.get(getActivity()).getCrime(crimeId); 
    } 
//переопределение CrimeFragment. 
//onPause(), которое обновляет копию Crime из CrimeLab 
    @Override 
    public void onPause() { 
        super.onPause(); 
 
        CrimeLab.get(getActivity()) 
                .updateCrime(mCrime); 
    } 
 
    @Override 
    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.setText(mCrime.getTitle()); 
        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) { 
 
            } 
        }); 
 
        mDateButton = (Button) v.findViewById(R.id.crime_date); 
        updateDate(); 
        mDateButton.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                FragmentManager manager = getFragmentManager(); 
                DatePickerFragment dialog = DatePickerFragment 
                        .newInstance(mCrime.getDate()); 
                dialog.setTargetFragment(CrimeFragment.this, REQUEST_DATE); 
                dialog.show(manager, DIALOG_DATE); 
            } 
        }); 
 
        mSolvedCheckbox = (CheckBox) v.findViewById(R.id.crime_solved); 
        mSolvedCheckbox.setChecked(mCrime.isSolved()); 
        mSolvedCheckbox.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
            @Override 
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
                mCrime.setSolved(isChecked); 
            } 
        }); 
 
        return v; 
    } 
 
    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
        if (resultCode != Activity.RESULT_OK) { 
            return; 
        } 
 
        if (requestCode == REQUEST_DATE) { 
            Date date = (Date) data 
                    .getSerializableExtra(DatePickerFragment.EXTRA_DATE); 
            mCrime.setDate(date); 
            updateDate(); 
        } 
    } 
 
    private void updateDate() { 
        mDateButton.setText(mCrime.getDate().toString()); 
    } 
} 

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