###前提・実現したいこと
Android端末でDBに接続し、受け取ったデータをspinnerフォームに
埋め込むというアプリを作成しています。
btn1を押すとspinner1で選択しているアイテムでDBにあるデータを検索し
結果をspinner2に入れたいです。
自分では以下ソースコードまでしか考えられず、
皆さまの知恵をお借りしたいです。
作成者は初心者です。宜しくお願い致します。
###発生している問題・エラーメッセージ
DBドライバは読み込めており、DBにも接続確認は下記ソースコードで確認がとれています。
###ソースコード
java
1 2package com.example.testdbhori; 3 4 5 6import java.sql.DriverManager; 7import java.sql.ResultSet; 8import android.view.View; 9import android.view.View.OnClickListener; 10import android.widget.AdapterView; 11import android.widget.ArrayAdapter; 12import android.widget.Button; 13import android.widget.Spinner; 14import android.widget.TextView; 15import android.app.Activity; 16import android.os.AsyncTask; 17import android.os.Bundle; 18import com.mysql.jdbc.Connection; 19import com.mysql.jdbc.Statement; 20 21 22 23public class MainActivity extends Activity implements OnClickListener{ 24 Spinner spinner1 = null; 25 Spinner spinner2 = null; 26 TextView textView2 = null; 27 TextView textView3 = null; 28 Button btn1 = null; 29 String sagasu; 30 String rsText; 31 int iRui; 32 long rstart; 33 long rstop; 34 35 protected void onCreate(Bundle savedInstanceState) { 36 super.onCreate(savedInstanceState); 37 setContentView(R.layout.activity_main); 38 39 spinner1 = (Spinner) findViewById(R.id.spinner1); //Spinnerコントロール取得 40 spinner2 = (Spinner) findViewById(R.id.spinner2); 41 btn1 = (Button)findViewById(R.id.btn1); 42 btn1.setOnClickListener(this); 43 44 45 String[] items = { //選択肢追加部分 46 "1", 47 "3", 48 }; 49 ArrayAdapter<String> spinnerAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items); 50 spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 51 spinner1.setAdapter(spinnerAdapter); 52 spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { 53 @Override 54 public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 55 sagasu = (String) spinner1.getSelectedItem(); 56 iRui = Integer.valueOf(sagasu).intValue(); //DBがintで代入しているためintに変換 57 } 58 59 @Override 60 public void onNothingSelected(AdapterView<?> parent) { 61 62 } 63 }); 64 65 66 67 } 68 69 70 public void onClick(View v) { 71 if(v.getId() == R.id.btn1){ 72 TaskDbQuery task = new TaskDbQuery(MainActivity.this); 73 task.execute(iRui); 74 } 75 } 76 77 78 79 80} //Mainの終わり 81 82 83class TaskDbQuery extends AsyncTask<Integer, Void, String>{ //DB接続クラス 84 Activity activity = null; 85 86 public TaskDbQuery(Activity act){ 87 activity = act; 88 89 } 90 protected String doInBackground(Integer... kensaku) { 91 92 String rsText=""; 93 94 try{ 95 System.out.println("try内入った"); 96 Class.forName("com.mysql.jdbc.Driver"); //mysqlのjdbc Driverのダウンロード 97 98 Connection conn=(Connection)DriverManager.getConnection("jdbc:mysql://****/DB名", "user", "pass"); //DBに接続 99 System.out.println("DB接続完了"); 100 Statement stmt=(Statement)conn.createStatement(); //ステートメント作成 101 String sql="select bl from 1sei where no='" + kensaku+ "'"; //検索 102 ResultSet rs=stmt.executeQuery(sql); 103 104 while(rs.next()){ 105 rsText =rs.getString(1)+"\n"; 106 } 107 rs.close(); 108 stmt.close(); 109 }catch(Exception e){ 110 System.out.println("catch内入った"); 111 rsText=e.getMessage(); 112 } 113 return rsText; 114 115 } 116 117 protected void onPostExecute(String result){ 118 //ここで戻り値返す…? 119 } 120 } 121 122 123 124 125 126 127activity_main.xml 128 129<?xml version="1.0"?> 130 131<LinearLayout 132tools:context="com.example.testdb.MainActivity" 133android:paddingTop="@dimen/activity_vertical_margin" 134android:paddingRight="@dimen/activity_horizontal_margin" 135android:paddingLeft="@dimen/activity_horizontal_margin" 136android:paddingBottom="@dimen/activity_vertical_margin" 137android:orientation="vertical" 138android:layout_height="match_parent" 139android:layout_width="match_parent" 140android:id="@+id/LinearLayout1" 141xmlns:tools="http://schemas.android.com/tools" 142xmlns:android="http://schemas.android.com/apk/res/android"> 143 144 145 146 <TextView 147 android:id="@+id/textView1" 148 android:layout_width="wrap_content" 149 android:layout_height="wrap_content" 150 android:text="どちら塁側ですか?" > 151 </TextView> 152 153 154 <Spinner android:id="@+id/spinner1" 155 android:layout_width="wrap_content" 156 android:layout_height="wrap_content" 157 > 158 159 </Spinner> 160 161 <Button 162 android:id="@+id/btn1" 163 android:layout_width="wrap_content" 164 android:layout_height="wrap_content" 165 android:text="検索" /> 166 167 <Spinner 168 android:id="@+id/spinner2" 169 android:layout_width="match_parent" 170 android:layout_height="wrap_content" /> 171 172</LinearLayout> 173 174 175
###補足情報(言語/FW/ツール等のバージョンなど)
実行実機 nexus7 4.3
mysql-connectorは5.1.10