質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

1349閲覧

SQLiteを使っての登録処理が上手く行きません

yuutarou22

総合スコア15

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2017/08/14 23:50

編集2017/08/15 01:05

###前提・実現したいこと
AndroidStudioで位置情報を使った観光地登録のアプリを開発しています。
そこで、最初は「観光地名」と「観光地概要」の登録を実装しようと考えております。
動きとしては下記のとおりです。
①MySpotAddActivityで入力
②下方にある登録ボタンでDBに挿入
②’下方にある見るボタンでDBに挿入されたものを見る(ShowDataActivityに画面遷移)

###該当のソースコード
##MySpotAddHereActivity.java

Java

1package com.example.yutaro0224.spot; 2 3//文字数制限のためimport文省略 4 5public class MySpotAddHereActivity extends Activity { 6 Global globals; 7 private final static int RESULT_CAMERA = 1001; 8 private final static int REQUEST_PERMISSION = 1002; 9 10 private Uri cameraUri; 11 private File cameraFile; 12 private String filePath; 13 private ImageView imageView; 14 @Override 15 protected void onCreate(Bundle savedInstanceState) { 16 super.onCreate(savedInstanceState); 17 setContentView(R.layout.activity_myspot_add_here); 18 final EditText spotName, spotOverview; 19 20 //グローバル変数 21 globals = (Global) this.getApplication(); 22 23 if (savedInstanceState != null) {cameraUri = savedInstanceState.getParcelable("CaptureUri");} 24 25 final MyDbHelper helper = new MyDbHelper(this); 26 final SQLiteDatabase db = helper.getWritableDatabase(); 27 28 Button returnButton = (Button) findViewById(R.id.return_button); 29 returnButton.setOnClickListener(new View.OnClickListener() { 30 @Override 31 public void onClick(View v) { 32 finish(); 33 } 34 }); 35 36 TextView spotNameLabel = (TextView) findViewById(R.id.spot_name_label); 37 spotName = (EditText) findViewById(R.id.spot_name); 38 39 TextView spotOverviewLabel = (TextView) findViewById(R.id.spot_overview_label); 40 spotOverview = (EditText) findViewById(R.id.spot_overview); 41 42 Button cameraButton = (Button) findViewById(R.id.camera_button); 43 cameraButton.setOnClickListener(new View.OnClickListener() { 44 @Override 45 public void onClick(View v) { 46 //Android6,API23以上でパーミッションの確認 47 if (Build.VERSION.SDK_INT >= 23) { 48 checkPermission(); 49 } else { 50 cameraIntent(); 51 } 52 } 53 }); 54 55 imageView = (ImageView) findViewById(R.id.image_view); 56 57 Button addButton = (Button) findViewById(R.id.AddButton); 58 addButton.setOnClickListener(new View.OnClickListener() { 59 @Override 60 public void onClick(View v) { 61 String spotNameStock = spotName.getText().toString(); 62 String spotOverviewStock = spotOverview.getText().toString(); 63 64 if (spotNameStock != null && spotOverviewStock != null) { 65 if (!spotNameStock.equals("") && !spotOverviewStock.equals("")) { 66 ContentValues Data = new ContentValues(); 67 Data.put("spotName",spotNameStock); 68 Data.put("spotOverview",spotOverviewStock); 69 long data = db.insert("spotTable", spotNameStock, Data); 70 } 71 } 72 } 73 }); 74 Button viewButton = (Button)findViewById(R.id.viewButton); 75 viewButton.setOnClickListener(new View.OnClickListener() { 76 @Override 77 public void onClick(View v) { 78 Intent intent = new Intent(getApplication(), ShowDataActivity.class); 79 startActivity(intent); 80 } 81 }); 82 } 83 84 //////////////////////カメラ処理//////////////////////// 85 private void cameraIntent() { 86 //保存先フォルダ作成 87 File cameraFolder = new File( 88 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "IMG" 89 ); 90 cameraFolder.mkdirs(); 91 92 //保存フォルダ名 93 String fileName = new SimpleDateFormat("ddHHmmss").format(new Date()); 94 filePath = cameraFolder.getPath() + "/" + fileName + ".jpg"; 95 Log.d("debug", "filePath:" + filePath); 96 97 //capture画像のファイルパス 98 cameraFile = new File(filePath); 99 cameraUri = Uri.fromFile(cameraFile); 100 101 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 102 intent.putExtra(MediaStore.EXTRA_OUTPUT, cameraUri); 103 startActivityForResult(intent, RESULT_CAMERA); 104 } 105 106 @Override 107 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 108 if (requestCode == RESULT_CAMERA) { 109 if (cameraUri != null) { 110 imageView.setImageURI(cameraUri); 111 } else { 112 Log.d("debug", "cameraUri == null"); 113 } 114 } 115 } 116 117 //Runtime Permission check 118 private void checkPermission() { 119 //すでに許可している 120 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { 121 cameraIntent(); 122 }//拒否していた場合 123 else { 124 requestLocationPermission(); 125 } 126 } 127 128 //許可を求める 129 private void requestLocationPermission() { 130 if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) { 131 ActivityCompat.requestPermissions(MySpotAddHereActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_PERMISSION); 132 } else { 133 Toast toast = Toast.makeText(this, "許可されないとアプリが実行できません", Toast.LENGTH_SHORT); 134 toast.show(); 135 136 ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, REQUEST_PERMISSION); 137 } 138 } 139 140 //結果の受取 141 @Override 142 public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { 143 if (requestCode == REQUEST_PERMISSION) { 144 //使用が許可された 145 if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { 146 cameraIntent(); 147 return; 148 } else { 149 //それでも拒否 150 Toast toast = Toast.makeText(this, "これ以上何も出来ません", Toast.LENGTH_SHORT); 151 toast.show(); 152 } 153 } 154 } 155} 156

##ShowDataActivity.java

java

1package com.example.yutaro0224.spot; 2 3import android.app.Activity; 4import android.database.Cursor; 5import android.database.sqlite.SQLiteDatabase; 6import android.os.Bundle; 7import android.widget.LinearLayout; 8import android.widget.TextView; 9 10public class ShowDataActivity extends Activity { 11 @Override 12 protected void onCreate(Bundle savedInstanceState){ 13 super.onCreate(savedInstanceState); 14 setContentView(R.layout.activity_show_data); 15 16 LinearLayout layout = new LinearLayout(this); 17 layout.setOrientation(LinearLayout.VERTICAL); 18 setContentView(layout); 19 20 MyDbHelper helper = new MyDbHelper(this); 21 SQLiteDatabase db = helper.getReadableDatabase(); 22 23 Cursor cursor = db.query("spotTable",new String[]{"name", "Over"}, null,null,null,null,null); 24 boolean mov = cursor.moveToFirst(); 25 while(mov){ 26 TextView textView = new TextView(this); 27 textView.setText(String.format("%s:%s", cursor.getString(0),cursor.getString(1))); 28 mov = cursor.moveToNext(); 29 layout.addView(textView); 30 } 31 32 cursor.close(); 33 db.close(); 34 } 35}

##MyDbHelper.java

java

1package com.example.yutaro0224.spot; 2 3import android.content.Context; 4import android.database.sqlite.SQLiteDatabase; 5import android.database.sqlite.SQLiteOpenHelper; 6 7public class MyDbHelper extends SQLiteOpenHelper { 8 static final String DB_NAME = "spot.db"; 9 static final int VERSION = 1; 10 public static final String TABLE_NAME = "spotTable"; 11 protected SQLiteDatabase db; 12 13 public MyDbHelper(Context context) { 14 super(context, DB_NAME, null, VERSION); 15 } 16 17 @Override 18 public void onCreate(SQLiteDatabase db) { 19 db.execSQL( 20 "CREATE TABLE " + TABLE_NAME + "(" + 21 " name TEXT NOT NULL, " + 22 " over TEXT NOT NULL " + 23 ");" 24 ); 25 } 26 27 @Override 28 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 29// db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME + ";"); 30// onCreate(db); 31 } 32}

ShowDataActivityへの画面遷移はするのですが、何も表示されません。
また、具体的なSQLiteの実装の流れを教えて頂けると幸いです。
(例えば、①SQLiteOpenHelperを継承したクラスを作って②それを……のようにです)
宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

カラム名が全てバラバラですね。カラム名は定数にして、ハードコーディングはやめましょう。

参考

投稿2017/08/15 01:42

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuutarou22

2017/08/15 02:16

回答ありがとうございます。 yonaさんのサイトの説明とてもわかり易いですね。 データベースファイル  →テーブル①、テーブル②…   →テーブル①の【名前】、【商品名】、【価格】というカラム名   →テーブル②の【名前】、【商品名】、【価格】というカラム名 ということだったんですね。構造が把握できていませんでした。 定数にしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問