Java tutorial
/** * Copyright 2012 C. A. Fitzgerald * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.github.riotopsys.shoppinglist.activity; import java.sql.SQLException; import java.util.UUID; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.NavUtils; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.view.inputmethod.EditorInfo; import android.widget.TextView; import android.widget.TextView.OnEditorActionListener; import android.widget.Toast; import com.github.riotopsys.shoppinglist.AppKeys; import com.github.riotopsys.shoppinglist.R; import com.github.riotopsys.shoppinglist.model.DatabaseHelper; import com.github.riotopsys.shoppinglist.model.ShoppingList; import com.github.riotopsys.shoppinglist.model.ShoppingListItem; import com.j256.ormlite.android.apptools.OpenHelperManager; public class ListItemEdit extends Activity implements OnClickListener, OnEditorActionListener { private ShoppingListItem mItem; private ShoppingList mList; private TextView mEditName; private TextView mEditQty; private boolean mEditMode; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list_item_edit); getActionBar().setDisplayHomeAsUpEnabled(true); UUID uuidList = (UUID) getIntent().getSerializableExtra(AppKeys.LIST_KEY); DatabaseHelper databaseHelper = OpenHelperManager.getHelper(this, DatabaseHelper.class); try { mList = databaseHelper.getShoppingList(uuidList); mEditName = (TextView) findViewById(R.id.edit_name); mEditQty = (TextView) findViewById(R.id.edit_qty); mEditQty.setOnEditorActionListener(this); findViewById(R.id.button_cancel).setOnClickListener(this); findViewById(R.id.button_done).setOnClickListener(this); mEditMode = getIntent().hasExtra(AppKeys.LIST_ITEM_KEY); if (mEditMode) { UUID uuidItem = (UUID) getIntent().getSerializableExtra(AppKeys.LIST_ITEM_KEY); mItem = databaseHelper.getShoppingListItem(uuidItem); mEditName.setText(mItem.getName()); mEditQty.setText(Integer.toString(mItem.getQuantity())); } } catch (SQLException e) { throw new RuntimeException(e); } finally { OpenHelperManager.releaseHelper(); } } @Override public boolean onCreateOptionsMenu(Menu menu) { if (mEditMode) { getMenuInflater().inflate(R.menu.activity_list_item_edit, menu); } return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; case R.id.menu_delete: mList.removeItem(this, mItem); NavUtils.navigateUpFromSameTask(this); return true; } return super.onOptionsItemSelected(item); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button_cancel: finish(); break; case R.id.button_done: makeChange(v); break; } } @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_DONE) { makeChange(v); return true; } return false; } private void makeChange(View v) { String name = mEditName.getText().toString(); if (!name.equals("")) { if (!mEditMode) { mItem = mList.createItem(this); } mItem.setName(v.getContext(), name); try { mItem.setQuantity(v.getContext(), Integer.parseInt(mEditQty.getText().toString())); } catch (NumberFormatException e) { mItem.setQuantity(v.getContext(), 1); } finish(); } else { Toast.makeText(getBaseContext(), R.string.name_reqd, Toast.LENGTH_SHORT).show(); } } }