我做错了什么?
我想显示一个AlertDialog - “或关闭一个应用程序”给我一个错误
Error:(141, 9) error: cannot find symbol method showDialog(int)
我该怎么办?
public class ZavdanFragment extends Fragment {
//аргумент індиф.
private static final String ARG_ZAMOV_ID = "zamov_id";
//мітка діалогу календаря
private static final String DIALOG_DATE = "DialogDate";
//мітка діалогу Фото
private static final String DIALOG_FOTO = "DialogFoto";
//private static final String DIALOG_EXIT = "DialogExit";
//призначення цільового фрагменту
private static final int REQUEST_DATE = 0;
//Контакти
private static final int REQUEST_CONTACT = 1;
//камера
private static final int REQUEST_PHOTO = 2;
//тел
private static final int REQUEST_PERMISSION = 3;
private static final int DIALOG_EXIT = 4;
private Zavdannya mZavdannya;
private EditText mTitleField; //назва замов.
private EditText mPrice; //ціна замов.
private Button mDateButton; // дата замов.
private CheckBox mVikonanoCheckBox; //виконання замов.
private CheckBox mTerminovoCheckBox; //термінове замов.
private CheckBox mOplataCheckBox; //оплачене замов.
private Button mRepostButton; //відправка звіту
private Button mContactButton; //список контактів
private ImageButton mPhotoButton; //кнопка фото
private ImageView mPhotoView; //фото
private File mPhotoFile;//фото
private Point mPhotoViewSize;//вікно фото
private Callbacks mCallbacks;
private Spinner mSpinnerWork;
//зателефонувати
private Button mCallContact;
private String mCallID;
//обовязковий інтерфейс для активності-хоста
public interface Callbacks {
void onZamovUpdated(Zavdannya zavdannya);
}
//аргументи індетифікатора
public static ZavdanFragment newInstance(UUID zamovId) {
Bundle args = new Bundle();
args.putSerializable(ARG_ZAMOV_ID, zamovId);
ZavdanFragment fragment = new ZavdanFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mCallbacks = (Callbacks) activity;
}
//зберегти і передати інд. замов.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//отримати індетифікатор
UUID zamovId = (UUID) getArguments().getSerializable(ARG_ZAMOV_ID);
mZavdannya = ZamovLab.get(getActivity()).getZavdannya(zamovId);
//збереження місцезнахоження фото
mPhotoFile = ZamovLab.get(getActivity()).getPhotoFile(mZavdannya);
//menu
setHasOptionsMenu(true);
}
//запис оновлення
@Override
public void onPause() {
super.onPause();
ZamovLab.get(getActivity()).updateZamov(mZavdannya);
}
@Override
public void onDetach() {
super.onDetach();
mCallbacks = null;
}
public void onclick(View v){
showDialog(DIALOG_EXIT);
}
protected Dialog onCreateDialog(int id) {
Dialog dialog = null;
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(getActivity());
switch (id){
case DIALOG_EXIT:
return new AlertDialog.Builder(getActivity())
.setTitle(R.string.exit)
.setCancelable(false)
.setMessage(R.string.dial)
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
android.os.Process.killProcess(android.os.Process.myPid());
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
})
.create();
}
dialog = builder.show();
return dialog;
}
//меню видалити
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.fragment_zamov, menu);
}
//дії при виборі меню
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
//видалити
case R.id.menu_item_delete_zamov:
ZamovLab.get(getActivity()).removeZamov(mZavdannya);
getActivity().finish();
return true;
case R.id.menu_item_exit:
onCreateDialog(DIALOG_EXIT);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
@Override
// розмітка (замовлення)
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_zamov,
container, false);
//назва замов.
mTitleField = (EditText) v.findViewById(R.id.zamov_title);
mTitleField.setText(mZavdannya.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) {
mZavdannya.setTitle(s.toString());
updateZamov();
}
@Override
public void afterTextChanged(Editable s) {
}
});
//список
mSpinnerWork = (Spinner) v.findViewById(R.id.spinner_work);
ArrayAdapter<CharSequence> dataAdapter = ArrayAdapter.createFromResource(
getActivity().getApplicationContext(), R.array.catlist, android.R.layout.simple_spinner_item
);
dataAdapter.setDropDownViewResource(android.R.layout
.simple_spinner_dropdown_item);
mSpinnerWork.setAdapter(dataAdapter);
mSpinnerWork.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
//відображення позиції
String item = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(), "Вибрано: " + item, Toast.LENGTH_LONG).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
//mSpinnerWork.setOnItemSelectedListener((AdapterView.OnItemClickListener) this);
/*List<String> work = new ArrayList<String>();
work.add("11a");
work.add("2a");
work.add("5a");
work.add("1a");
work.add("2a");
work.add("3a");
work.add("4a");
work.add("55a");
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(
getActivity(), android.R.layout.simple_spinner_item, work
);*/
//ціна
mPrice = (EditText) v.findViewById(R.id.zamov_title_prise);
mPrice.setText(mZavdannya.getPrice());//оновити ціну
mPrice.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) {
mZavdannya.setPrice(s.toString());
updateZamov();
}
@Override
public void afterTextChanged(Editable s) {
}
});
//дата
mDateButton = (Button) v.findViewById(R.id.zamov_date);
updateDate();
//виклик діал. вікна при натискані на дату
mDateButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager manager = getFragmentManager();
//виклик newInstance
DatePickerFragment dialog = DatePickerFragment
.newInstance(mZavdannya.getDate());
dialog.setTargetFragment(ZavdanFragment.this, REQUEST_DATE);
dialog.show(manager, DIALOG_DATE);
}
});
//виконання
mVikonanoCheckBox = (CheckBox) v.findViewById(R.id.zamov_vikonano);
mVikonanoCheckBox.setChecked(mZavdannya.isVikonano());//оновити прапорець
mVikonanoCheckBox.setOnCheckedChangeListener(new CompoundButton
.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(
CompoundButton buttonView, boolean isChecked) {
//Прапорець виконання
mZavdannya.setVikonano(isChecked);
updateZamov();
}
});
//оплаченно
mOplataCheckBox = (CheckBox) v.findViewById(R.id.zamov_oplata);
mOplataCheckBox.setChecked(mZavdannya.isOplata());//оновити прапорець
mOplataCheckBox.setOnCheckedChangeListener(new CompoundButton
.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(
CompoundButton buttonView, boolean isChecked) {
//Прапорець виконання
mZavdannya.setOplata(isChecked);
updateZamov();
}
});
//терміново
mTerminovoCheckBox = (CheckBox) v.findViewById(R.id.zamov_terminovo);
mTerminovoCheckBox.setChecked(mZavdannya.isTerminovo());//оновити прапорець
mTerminovoCheckBox.setOnCheckedChangeListener(new CompoundButton
.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(
CompoundButton buttonView, boolean isChecked) {
//Прапорець виконання
mZavdannya.setTerminovo(isChecked);
updateZamov();
}
});
//звіт про виконання
mRepostButton = (Button) v.findViewById(R.id.zamov_repost);
mRepostButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_TEXT, getZamovRepost());
i.putExtra(Intent.EXTRA_SUBJECT,
getString(R.string.zamov_repost_subject));
i = Intent.createChooser(i, getString(R.string.send_repost));
startActivity(i);
}
});
//Вибір контакту
final Intent pickContact = new Intent(Intent.ACTION_PICK,
ContactsContract.Contacts.CONTENT_URI);
// pickContact.addCategory(Intent.CATEGORY_HOME);//перевірка фільтра
mContactButton = (Button) v.findViewById(R.id.zamov_contact);
mContactButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//startActivityForResult(pickContact, REQUEST_CONTACT);
//зчитати контакт
int permissionCheck = ContextCompat.checkSelfPermission(getActivity(),
android.Manifest.permission.READ_CONTACTS);
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
ZavdanFragment.this.requestPermissions(new String[]{
android.Manifest.permission.READ_CONTACTS
}, REQUEST_PERMISSION);
} else {
startActivityForResult(pickContact, REQUEST_CONTACT);
}
}
});
if (mZavdannya.getContact() != null) {
mContactButton.setText(mZavdannya.getContact());
}
//зателефонувати
mCallContact = (Button) v.findViewById(R.id.call_contact_button);
mCallContact.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mCallID != null) {
Cursor cursor = getActivity().getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
new String[]{ContactsContract.CommonDataKinds.Phone.CONTACT_ID,
ContactsContract.CommonDataKinds.Phone.NUMBER},
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{mCallID}, null);
try {
cursor.moveToFirst();
String phoneNumber = cursor.getString(cursor.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER));
Intent callContact = new Intent(Intent.ACTION_DIAL,
Uri.parse("tel:" + phoneNumber));
startActivity(callContact);
} finally {
cursor.close();
}
} else {
Toast.makeText(getActivity().getApplicationContext(),
"Контакт не вибраний",
Toast.LENGTH_LONG).show();
}
}
});
//захист від контакних програм
PackageManager packageManager = getActivity().getPackageManager();
if (packageManager.resolveActivity(pickContact,
PackageManager.MATCH_DEFAULT_ONLY) == null) {
mContactButton.setEnabled(false);
}
//кнопка фото
mPhotoButton = (ImageButton) v.findViewById(R.id.zamov_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.zamov_photo);
// updatePhotoView();
mPhotoView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager manager = getFragmentManager();
PhotoView dialog = new PhotoView();
PhotoView.getPhotoFile(mPhotoFile);
dialog.show(manager, DIALOG_FOTO);
}
});
final ViewTreeObserver observer = mPhotoView.getViewTreeObserver();
observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
boolean isFirstPass = (mPhotoViewSize == null);
mPhotoViewSize = new Point();
mPhotoViewSize.set(mPhotoView.getWidth(), mPhotoView.getHeight());
if (isFirstPass) updatePhotoView();
}
});
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);
mZavdannya.setDate(date);
updateZamov();
updateDate();
}//вибрати контакт
else if (requestCode == REQUEST_CONTACT && data != null) {
Uri contactUri = data.getData();
//визначенняя поля які мають бути повернуті запитом
String[] queryFields = new String[]{
ContactsContract.Contacts.DISPLAY_NAME, ContactsContract
.Contacts._ID};
//виконання запиту
Cursor c = getActivity().getContentResolver()
.query(contactUri, queryFields, null, null, null);
try {
//перевірка отриманого результату
if (c.getCount() == 0) {
return;
}
//використання 1 стовбця даних (ім'я контакту)
c.moveToFirst();
String contact = c.getString(0);
mZavdannya.setContact(contact);
updateZamov();
mContactButton.setText(contact);
mCallID = c.getString(c.getColumnIndex(ContactsContract.
Contacts._ID));
} finally {
c.close();
}
} else if (requestCode == REQUEST_PHOTO) {
updateZamov();
updatePhotoView();
}
}
private void updateZamov() {
ZamovLab.get(getActivity()).updateZamov(mZavdannya);
mCallbacks.onZamovUpdated(mZavdannya);
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions,
int[] grantResults) {
if (requestCode == REQUEST_PERMISSION) {
if (grantResults.length > 0 && grantResults[0] == PackageManager
.PERMISSION_GRANTED) {
Intent pickContact = new Intent(Intent.ACTION_DIAL, ContactsContract
.Contacts.CONTENT_URI);
startActivityForResult(pickContact, REQUEST_CONTACT);
}
}
}
private void updateDate() {
//формат дати
SimpleDateFormat dateFormat = new SimpleDateFormat("EEEE, dd MMM, yyyy");
//оновити дату
mDateButton.setText(dateFormat.format(mZavdannya.getDate()));
}
//4 строчки звіту та з'єднaння їх
private String getZamovRepost() {
//1 строчка
String vikonanoString = null;
if (mZavdannya.isVikonano()) {
vikonanoString = getString(R.string.zamov_repost_vikonano);
} else {
vikonanoString = getString(R.string.zamov_repost_nevikonano);
}
//2 строчка
String dataFormat = "EEE,dd MMM";
String dataString = android.text.format.DateFormat.format(
dataFormat, mZavdannya.getDate()).toString();
//3 строчка
String contact = mZavdannya.getContact();
if (contact == null) {
contact = getString(R.string.zamov_repost_no_contact);
} else {
contact = getString(R.string.zamov_repost_contact) + mZavdannya.getContact();
}
String price = mZavdannya.getPrice();
String report = getString(R.string.zamov_repost, mZavdannya.
getTitle(), dataString, vikonanoString, contact, price);
return report;
}
//оновлення фото
private void updatePhotoView() {
if (mPhotoFile == null || !mPhotoFile.exists()) {
mPhotoView.setImageDrawable(null);
} else {
/* Bitmap bitmap = PictureUtils.getScaledBitmap(
mPhotoFile.getPath(), getActivity());
mPhotoView.setImageBitmap(bitmap);*/
Bitmap bitmap = (mPhotoViewSize == null) ?
PictureUtils.getScaledBitmap(mPhotoFile.getPath(), getActivity()) :
PictureUtils.getScaledBitmap(mPhotoFile.getPath(),
mPhotoViewSize.x, mPhotoViewSize.y);
mPhotoView.setImageBitmap(bitmap);
mPhotoView.setEnabled(true);
}
}
}
答案 0 :(得分:0)