OSDN Git Service

路線名編集画面修正
authorYuji Konishi <yuji.k64613@gmail.com>
Thu, 28 Jul 2011 17:01:40 +0000 (02:01 +0900)
committerYuji Konishi <yuji.k64613@gmail.com>
Thu, 28 Jul 2011 17:01:40 +0000 (02:01 +0900)
workspace/TrainDelayed/src/com/td/TrainEditActivity.java
workspace/TrainDelayed/src/com/td/TrainListActivity.java
workspace/TrainDelayed/src/com/td/db/TrainDao.java

index 3ae10bd..84c3a3a 100644 (file)
@@ -1,6 +1,6 @@
 package com.td;\r
 \r
-import android.app.Activity;\r
+import android.content.Context;\r
 import android.os.Bundle;\r
 import android.text.Editable;\r
 import android.text.TextWatcher;\r
@@ -12,9 +12,16 @@ import android.widget.EditText;
 \r
 import com.td.db.Train;\r
 import com.td.db.TrainDao;\r
+import com.td.utility.BaseActivity;\r
+import com.td.utility.EditPrefUtil;\r
+import com.td.utility.Util;\r
 import com.td.webapi.RouteUpdater;\r
 \r
-public class TrainEditActivity extends Activity {\r
+public class TrainEditActivity extends BaseActivity {\r
+       public static final String PREF_TRE_ID = "TRE_ID";\r
+       public static final String PREF_TRE_NAME = "TRE_NAME";\r
+       public static final String PREF_TRE_SNAME = "TRE_SNAME";\r
+\r
        public static final String JR = "JR";\r
        public static final String LINE = "\90ü";\r
        private EditText editText1;\r
@@ -24,8 +31,10 @@ public class TrainEditActivity extends Activity {
        private Button button1;\r
        private Button button2;\r
        private Button button3;\r
-       private long id;\r
 \r
+       private EditPrefUtil pref = new EditPrefUtil(this);\r
+       private Train train = null;\r
+       \r
        @Override\r
        public void onCreate(Bundle savedInstanceState) {\r
                super.onCreate(savedInstanceState);\r
@@ -69,8 +78,9 @@ public class TrainEditActivity extends Activity {
                });\r
                button1.setOnClickListener(new OnClickListener(){\r
                        public void onClick(View view) {\r
-                               String sname = editText2.getText().toString();\r
-                               TrainDao.getInstance().set(id, sname);\r
+                               long id = train.getId();\r
+                               String sname = train.getSearchText();\r
+                               TrainDao.getInstance().set(id, sname, true);\r
                                TrainEditActivity.this.finish();\r
                        }});\r
                button2.setOnClickListener(new OnClickListener(){\r
@@ -79,24 +89,68 @@ public class TrainEditActivity extends Activity {
                        }});\r
                button3.setOnClickListener(new OnClickListener(){\r
                        public void onClick(View view) {\r
-                               String sname = editText1.getText().toString();\r
+                               String sname = train.getSearchText();\r
                                sname = RouteUpdater.filter(sname);\r
                                editText2.setText(sname);\r
                        }});\r
-\r
-           Bundle extras = getIntent().getExtras();\r
-           id = extras.getLong("ID");\r
-               Train train = TrainDao.getInstance().searchById(id);\r
-               if (train != null){\r
-                       String name = train.getName();\r
-                       String sname = train.getSearchText();\r
-                       editText1.setText(name);\r
-                       editText2.setText(sname);\r
-                       editText();\r
-               }               \r
        }\r
        \r
+       public static void init(Context context){\r
+               EditPrefUtil pref = new EditPrefUtil(context);\r
+               pref.remove(PREF_TRE_ID);\r
+               pref.update();\r
+       }\r
+       \r
+       @Override\r
+       protected void onResume() {\r
+               String name = "";\r
+               String sname = "";\r
+               \r
+               String idStr = pref.get(PREF_TRE_ID);\r
+               if (idStr == null){\r
+                   Bundle extras = getIntent().getExtras();\r
+                   long id = extras.getLong("ID");\r
+                       train = TrainDao.getInstance().searchById(id);\r
+                       if (train != null){\r
+                               name = train.getName();\r
+                               sname = train.getSearchText();\r
+                       }               \r
+               }\r
+               else {\r
+                       long id = Long.valueOf(idStr);\r
+                       name = pref.get(PREF_TRE_NAME);\r
+                       sname = pref.get(PREF_TRE_SNAME);\r
+                       train = new Train(id, name, sname, Util.toInt(false));\r
+               }\r
+               editText1.setText(name);\r
+               editText2.setText(sname);\r
+               editText();\r
+\r
+               super.onResume();\r
+       }\r
+\r
+       @Override\r
+       protected void onPause() {\r
+               super.onPause();\r
+\r
+               try {\r
+                       if (train != null){\r
+                               pref.put(PREF_TRE_ID, String.valueOf(train.getId()));\r
+                               pref.put(PREF_TRE_NAME, train.getName());\r
+                               pref.put(PREF_TRE_SNAME, train.getSearchText());\r
+                               pref.update();\r
+                       }\r
+               }\r
+               catch (Exception e){\r
+                       // TODO\r
+                       e.printStackTrace();\r
+               }\r
+       }\r
+\r
        private void editText(){\r
+               if (train == null){\r
+                       return;\r
+               }\r
                String name = editText1.getText().toString();\r
                String sname = editText2.getText().toString();\r
                 \r
@@ -125,9 +179,13 @@ public class TrainEditActivity extends Activity {
                         }\r
                         checkBox2.setChecked(!ch2.equals(JR));\r
                 }\r
+               train.setSearchText(sname);\r
        }\r
 \r
        private void editLine() {\r
+               if (train == null){\r
+                       return;\r
+               }\r
                String sname = editText2.getText().toString();\r
                if (checkBox1.isChecked()){\r
                        int len = sname.length();\r
@@ -137,9 +195,13 @@ public class TrainEditActivity extends Activity {
                        sname += LINE;\r
                }\r
                editText2.setText(sname);\r
+               train.setSearchText(sname);\r
        }\r
        \r
        private void editJR() {\r
+               if (train == null){\r
+                       return;\r
+               }\r
                String sname = editText2.getText().toString();\r
                if (checkBox2.isChecked()){\r
                        int len = sname.length();\r
@@ -149,5 +211,6 @@ public class TrainEditActivity extends Activity {
                        sname = JR + sname;\r
                }                               \r
                editText2.setText(sname);\r
+               train.setSearchText(sname);\r
        }\r
 }\r
index f56aa08..335d4b9 100644 (file)
@@ -49,13 +49,16 @@ public class TrainListActivity extends BaseActivity {
                        CheckBox checkbox = (CheckBox)view.findViewById(R.id.checkBox);\r
                        checkbox.setChecked(selected);\r
                                \r
-                       long n = item.getId();\r
-                               TrainDao.getInstance().set(n, selected);\r
+                       // TODO\r
+                       //long n = item.getId();\r
+                               //TrainDao.getInstance().set(n, selected);\r
        \r
                                pref.put(TrainDelayedServiceImpl.PREF_SVS_DBFLG, 0);\r
                                pref.update();\r
                                \r
                                if (selected){\r
+                                       TrainEditActivity.init(TrainListActivity.this);\r
+                                       \r
                                        Intent intent = new Intent(TrainListActivity.this,\r
                                                        (Class<?>) TrainEditActivity.class);\r
                                        intent.putExtra("ID", item.getId());\r
index 039f37d..f774732 100644 (file)
@@ -15,6 +15,7 @@ public class TrainDao {
        private SQLiteStatement insertStmt = null;\r
        private SQLiteStatement updateStmt = null;\r
        private SQLiteStatement updateStmt2 = null;\r
+       private SQLiteStatement updateStmt3 = null;\r
        private SQLiteStatement deleteStmt = null;\r
        \r
        public static TrainDao getInstance(){\r
@@ -57,6 +58,11 @@ public class TrainDao {
                                "UPDATE TRAIN SET "\r
                                + "SEARCH_TEXT = ? "\r
                                + "WHERE " + android.provider.BaseColumns._ID + " = ?;");\r
+               updateStmt3 = db.compileStatement(\r
+                               "UPDATE TRAIN SET "\r
+                               + "SEARCH_TEXT = ? ,"\r
+                               + "SELECTED = ? "\r
+                               + "WHERE " + android.provider.BaseColumns._ID + " = ?;");\r
                deleteStmt = db.compileStatement(\r
                                "DELETE FROM TRAIN");\r
                }\r
@@ -266,6 +272,26 @@ public class TrainDao {
                }\r
        }\r
 \r
+       public void set(long id, String searchText, boolean selected) {\r
+               DatabaseHelper helper = DatabaseHelper.getInstance();\r
+               SQLiteDatabase db = helper.getWritableDatabase();\r
+               db.beginTransaction();\r
+               try {\r
+                       int i = 1;\r
+                       SQLiteStatement stmt = updateStmt3;\r
+                       stmt.bindString(i++, searchText);\r
+                       stmt.bindLong(i++, Util.toInt(selected));\r
+                       stmt.bindLong(i++, id);\r
+                       stmt.execute();\r
+                       db.setTransactionSuccessful();\r
+               } catch (Exception e){\r
+                       // TODO\r
+                       Debug.d(this, null, e);\r
+               } finally {\r
+                       db.endTransaction();\r
+               }\r
+       }\r
+\r
        public void deleteNT() {\r
                SQLiteStatement stmt = deleteStmt;\r
                stmt.execute();\r