Przepisy – EditText.setLines() – #1F

Miałam już pisać podsumowanie, ale rzuciłam okiem na pierwszy wpis i tam w założeniach projektu przeczytałam, że w mojej aplikacji będzie możliwość dodawania przepisów. No to dodałam 🙂

Na ten moment najprostsze co może być. W jednym widoku EditText, w drugim TextView.

Dialog z edytowalnym polem do wpisywania zrobiłam wielolinijkowy, żeby było bardziej przyjazne użytkownikowi, który będzie wpisywał dłuuugi tekst. Żeby nie zaciemniać w kodzie zrobiłam dodatkowy layout dla tego dialogu.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/multiline_edit_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:lines="8"
android:minLines="6"
android:maxLines="10" />
</LinearLayout>

view raw
multiline_dialog.xml
hosted with ❤ by GitHub

Wrzucanie swojego widoku w dialog już mam opanowane 😉

private void showAddRecipeDialog(final Meal meal) {
View view = getLayoutInflater().inflate(R.layout.multiline_dialog, null);
final EditText recipeText = (EditText) view.findViewById(R.id.multiline_edit_text);
recipeText.setText(meal.getRecipe());
new AlertDialog.Builder(this)
.setTitle(R.string.recipe)
.setView(view)
.setPositiveButton(R.string.add, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
mealContract.addRecipe(dbHelper, recipeText.getText().toString(), meal.getId());
adapter.updateResults(mealContract.getAllMealsArray(dbHelper));
}
})
.setNegativeButton(R.string.cancel, null)
.show();
}

Mam jeszcze ambitny plan, żeby po zapisaniu przepisu automatycznie wyodrębnić i zapisać połączenie posiłku ze składnikami jeżeli już mamy takie w bazie, ale muszę wymyślić jak to zrobić szybko i najlepiej po stronie bazy danych… ale ja nie jestem bazodanowcem 😀

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

%d bloggers like this: