Я создаю приложение со следующим макетом: Макет основного приложения В приложении я использую кнопку «Сделать фото», чтобы вызвать намерение камеры с телефона сделать снимок.Изображение отображается в виде изображения (выделено красным на макете).
Я также использую кнопку Сохранить, чтобы сохранить изображение в галерее через намерение.Я также использую кнопку подписи, чтобы захватить подпись пользователя. Подпись имеет свой собственный макет.Макет состоит из следующего: Макет подписи Тем не менее, допустим, я открываю приложение и нажимаю кнопку Сохранить, когда в данный момент изображение не отображается.Моя кнопка Сохранить в настоящее время все еще работает и поднимает галерею, несмотря на отсутствие изображения.То же самое происходит с кнопкой сохранения в моем макете подписи.Если в настоящее время нет подписи, кнопка сохранения все еще сохраняется.
Как бы я закодировал ее там, где я могу проверить, есть ли уже показанное изображение или уже показана подпись, и если нет, кнопки сохраненияв моей подписи и макете основного приложения отключены.Я знаю, что для отключения кнопки используется следующий синтаксис: myButton.setEnabled(false);
У меня есть следующий код для кнопки сохранения в основном макете приложения:
//this save button is for the gallery app after you take a photo
saveButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
//launch the gallery app intent
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
intent.setType("image/*");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
Toast.makeText(DriverActivity.this, "Image Saved to Gallery", Toast.LENGTH_SHORT).show();
/*if there is currently no image, disable save button and display a toast message
Toast.makeText(DriverActivity.this, "There's no image currently shown.", Toast.LENGTH_SHORT).show();*/
}
});
// restoring storage image path from saved instance state
// otherwise the path will be null on device rotation
restoreFromBundle(savedInstanceState);
Тогда у меня есть этот код дляподпись:
//this is for signature
signatureButton.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
/*// Use an intent to launch an email app.
// Send the order summary in the email body.
Intent intent = new Intent(Intent.ACTION_SENDTO);
intent.setData(Uri.parse("mailto:")); // only email apps should handle this
intent.putExtra(Intent.EXTRA_SUBJECT,
getString(R.string.order_summary_email_subject));
if (intent.resolveActivity(getPackageManager()) != null) {
startActivity(intent);
}*/
Intent intent = new Intent(DriverActivity.this, SignatureActivity.class);
startActivity(intent);
Toast.makeText(DriverActivity.this, "Now Loading Signature Sign", Toast.LENGTH_LONG).show();
}
});
Этот фрагмент кода взят из моего файла SignatureActivity.java (обратите внимание, что два приведенных выше примера кода взяты из другого файла Activity.java (т. е. DriverActivity.java):
//capture signature
btnSave.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
view.setDrawingCacheEnabled(true);
mSignature.save(view,StoredPath);
Intent intent2 = new Intent(getBaseContext(), DriverActivity.class);
startActivity(intent2);
finish();
Toast.makeText(getApplicationContext(), "Successfully Saved", Toast.LENGTH_SHORT).show();
}
});