/*
     * 在getView() 内部,
     * (1)adapter使用数组列表中指定位置的列表项,创建一个视图对象
     * (2)将该对象返回给ListView
     * (3)ListView 将其设置为自己的子视图
     * (4)ListView刷新,在屏幕上显示
     *
     * ListView与Adapter 之间会话:
     * 调用 getCount() 获得总数,然后再调用 getView() 循环调用多次完成所有项目的显示
     */
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      // if we weren't given a view , inflate on
      if (convertView == null) {
        convertView =
            getActivity()
                .getLayoutInflater()
                .inflate(R.layout.list_item_crime, null); // 使用新设计的R.layout.list_item_crime布局
      }

      // configure the view for this Crime
      Crime c = getItem(position); // 可以不类型转换

      TextView titleTextView =
          (TextView) convertView.findViewById(R.id.crime_list_item_titleTextView);
      titleTextView.setText(c.getmTitle());
      TextView dateTextView =
          (TextView) convertView.findViewById(R.id.crime_list_item_dateTextView);
      dateTextView.setText(c.getmDate().toString());

      CheckBox solvedCheckBox =
          (CheckBox) convertView.findViewById(R.id.crime_list_item_solvedCheckBox);
      solvedCheckBox.setChecked(c.isSolved());

      return convertView;
    }
  @Nullable
  @Override
  @TargetApi(11)
  public View onCreateView(
      LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_crime, container, false);

    titleField = (EditText) v.findViewById(R.id.crime_title);
    titleField.setText(crime.getTitle());
    titleField.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) {
            crime.setTitle(s.toString());
          }

          @Override
          public void afterTextChanged(Editable s) {}
        });

    dateButton = (Button) v.findViewById(R.id.crime_date);
    updateDate();
    dateButton.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            FragmentManager fm = getActivity().getSupportFragmentManager();
            DatePickerFragment dialog = DatePickerFragment.newInstance(crime.getDate());
            dialog.setTargetFragment(CrimeFragment.this, REQUEST_DATE);
            dialog.show(fm, DIALOG_DATE);
          }
        });
    solvedCheckbox = (CheckBox) v.findViewById(R.id.crime_solved);
    solvedCheckbox.setChecked(crime.isSolved());
    solvedCheckbox.setOnCheckedChangeListener(
        new CompoundButton.OnCheckedChangeListener() {
          @Override
          public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            crime.setSolved(isChecked);
          }
        });

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
      if (NavUtils.getParentActivityName(getActivity()) != null) {
        ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
      }
    }

    return v;
  }
예제 #3
0
  @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 fragmentManager = getActivity().getSupportFragmentManager();
            DatePickerFragment dialog = DatePickerFragment.newInstance(mCrime.getDate());
            dialog.setTargetFragment(CrimeFragment.this, REQUEST_DATE);
            dialog.show(fragmentManager, DIALOG_DATE);
          }
        });

    mSolvedCheckBox = ((CheckBox) v.findViewById(R.id.crime_solved));
    mSolvedCheckBox.setChecked(mCrime.isSolved());
    mSolvedCheckBox.setOnCheckedChangeListener(
        new CompoundButton.OnCheckedChangeListener() {
          @Override
          public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            mCrime.setSolved(isChecked);
          }
        });
    return v;
  }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
      if (convertView == null) {
        convertView = getActivity().getLayoutInflater().inflate(R.layout.list_item_crime, null);
      }
      Crime c = getItem(position);
      TextView titleTextView =
          (TextView) convertView.findViewById(R.id.crime_list_item_titleTextView);
      titleTextView.setText(c.getTitle());
      TextView dateTextView =
          (TextView) convertView.findViewById(R.id.crime_list_item_dateTextView);
      SimpleDateFormat df = new SimpleDateFormat("EEEE, MMM dd, yyyy");
      dateTextView.setText(df.format(c.getDate()));
      CheckBox solvedCheckBox =
          (CheckBox) convertView.findViewById(R.id.crime_list_item_solvedCheckBox);
      solvedCheckBox.setChecked(c.isSolved());

      return convertView;
    }
예제 #5
0
  private String getCrimeReport() {
    String solvedString = null;
    if (mCrime.isSolved()) {
      solvedString = getString(R.string.crime_report_solved);
    } else {
      solvedString = getString(R.string.crime_report_unsolved);
    }

    String dateFormat = "EEE, MMM dd";
    String dateString = DateFormat.format(dateFormat, mCrime.getDate()).toString();

    String suspect = mCrime.getSuspect();
    if (suspect == null) {
      suspect = getString(R.string.crime_report_no_suspect);
    } else {
      suspect = getString(R.string.crime_report_suspect, suspect);
    }

    String report =
        getString(R.string.crime_report, mCrime.getTime(), dateString, solvedString, suspect);

    return report;
  }
  @Override
  @TargetApi(11)
  public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.fragment_crime, parent, false);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
      getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
    }

    mTitleField = (EditText) v.findViewById(R.id.crime_title);
    mTitleField.setText(mCrime.getTitle());
    mTitleField.addTextChangedListener(
        new TextWatcher() {
          public void onTextChanged(CharSequence c, int start, int before, int count) {
            mCrime.setTitle(c.toString());
          }

          public void beforeTextChanged(CharSequence c, int start, int count, int after) {
            // this space intentionally left blank
          }

          public void afterTextChanged(Editable c) {
            // this one too
          }
        });

    mDateButton = (Button) v.findViewById(R.id.crime_date);
    updateDate();
    mDateButton.setOnClickListener(
        new View.OnClickListener() {
          public void onClick(View v) {
            FragmentManager fm = getActivity().getSupportFragmentManager();
            DatePickerFragment dialog = DatePickerFragment.newInstance(mCrime.getDate());
            dialog.setTargetFragment(CrimeFragment.this, REQUEST_DATE);
            dialog.show(fm, DIALOG_DATE);
          }
        });

    mSolvedCheckBox = (CheckBox) v.findViewById(R.id.crime_solved);
    mSolvedCheckBox.setChecked(mCrime.isSolved());
    mSolvedCheckBox.setOnCheckedChangeListener(
        new OnCheckedChangeListener() {
          public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // set the crime's solved property
            mCrime.setSolved(isChecked);
          }
        });

    mPhotoButton = (ImageButton) v.findViewById(R.id.crime_imageButton);
    mPhotoButton.setOnClickListener(
        new View.OnClickListener() {
          public void onClick(View v) {
            // launch the camera activity
            Intent i = new Intent(getActivity(), CrimeCameraActivity.class);
            startActivity(i);
          }
        });

    // if camera is not available, disable camera functionality
    PackageManager pm = getActivity().getPackageManager();
    if (!pm.hasSystemFeature(PackageManager.FEATURE_CAMERA)
        && !pm.hasSystemFeature(PackageManager.FEATURE_CAMERA_FRONT)) {
      mPhotoButton.setEnabled(false);
    }

    return v;
  }
 public void bindCrime(Crime crime) {
   mCrime = crime;
   mTitleTextView.setText(mCrime.getTitle());
   mDateTextView.setText(mCrime.getDate().toString());
   mSolvedCheckBox.setChecked(mCrime.isSolved());
 }
예제 #8
0
  @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) {
            // intentional blank
          }

          @Override
          public void onTextChanged(CharSequence s, int start, int before, int count) {
            mCrime.setTitle(s.toString());
          }

          @Override
          public void afterTextChanged(Editable s) {
            // this one too
          }
        });
    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);
          }
        });

    mTimeButton = (Button) v.findViewById(R.id.crime_time);
    updateTime();
    mTimeButton.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            FragmentManager manager = getFragmentManager();
            TimePickerFragment dialog = TimePickerFragment.newInstance(mCrime.getTime());
            dialog.setTargetFragment(CrimeFragment.this, REQUEST_TIME);
            dialog.show(manager, DIALOG_TIME);
          }
        });

    mSolvedCheckBox = (CheckBox) v.findViewById(R.id.crime_solved);
    mSolvedCheckBox.setChecked(mCrime.isSolved());
    mSolvedCheckBox.setOnCheckedChangeListener(
        new CompoundButton.OnCheckedChangeListener() {
          @Override
          public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            // set the crime's solved property
            mCrime.setSolved(isChecked);
          }
        });

    mDeleteButton = (Button) v.findViewById(R.id.delete_crime);
    mDeleteButton.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            // CrimeLab.get(getActivity()).removeCrime(mCrime);
            getActivity().finish();
          }
        });

    mReportButton = (Button) v.findViewById(R.id.crime_report);
    mReportButton.setOnClickListener(
        new View.OnClickListener() {
          public void onClick(View v) {
            Intent i = new Intent(Intent.ACTION_SEND);
            i.setType("text/plain");
            i.putExtra(Intent.EXTRA_TEXT, getCrimeReport());
            i.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.crime_report_subject));
            i = Intent.createChooser(i, getString(R.string.send_report));
            startActivity(i);
          }
        });

    final Intent pickContact =
        new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);

    mSuspectButton = (Button) v.findViewById(R.id.crime_suspect);
    mSuspectButton.setOnClickListener(
        new View.OnClickListener() {
          public void onClick(View v) {
            startActivityForResult(pickContact, REQUEST_CONTACT);
          }
        });

    if (mCrime.getSuspect() != null) {
      mSuspectButton.setText(mCrime.getSuspect());
    }

    PackageManager packageManager = getActivity().getPackageManager();
    if (packageManager.resolveActivity(pickContact, PackageManager.MATCH_DEFAULT_ONLY) == null) {
      mSuspectButton.setEnabled(false);
    }

    mPhotoButton = (ImageButton) v.findViewById(R.id.crime_camera);
    final Intent captureImage = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    boolean canTakePhoto =
        mPhotoFile != null && captureImage.resolveActivity(packageManager) != null;
    mPhotoButton.setEnabled(canTakePhoto);
    if (canTakePhoto) {
      Uri uri = Uri.fromFile(mPhotoFile);
      captureImage.putExtra(MediaStore.EXTRA_OUTPUT, uri);
    }

    mPhotoButton.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            startActivityForResult(captureImage, REQUEST_PHOTO);
          }
        });

    mPhotoView = (ImageView) v.findViewById(R.id.crime_photo);
    updatePhotoView();

    return v;
  }