• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:android CSVファイルのデータを)

Android CSVファイルのデータをHashMapにセットする方法

このQ&Aのポイント
  • AndroidでCSVファイルのデータをHashMapにセットする方法について初心者向けに解説します。
  • 具体的な処理のコード例を示し、CSVファイルからデータを読み込み、HashMapにセットする手順を説明します。
  • 参考サイトや参考書の情報を活用しながら、効率的にCSVファイルのデータをHashMapにセットする方法を学んでください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

うーん。 CSVReaderを知らないから妄想で答えるけど、 reader.readNext() で一行読み込んで、一行に含まれるデータをString[]にして戻してくれるんだよね? だったら、 HashMap map = new HashMap(); map.put(csv[0],csv[1]) でいいんじゃない? もちろんcsvの長さが2以上のチェックは別途いるよ。

tokyo2199
質問者

お礼

ありがとうございます。 思っていたようになりました!! (csv[0],csv[1])こんな単純にできるとは思いませんでした! > もちろんcsvの長さが2以上のチェックは別途いるよ。 データは常に2以下の長さなので大丈夫です。 本当にありがとうございました。 またわからないときは宜しくお願いいたします。

その他の回答 (3)

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.3

> 今はとりあえずCSVファイルのデータをArrayListにセットし > 試しにテキストビューに表示するようにしています。 > HashMap へセットするためのコードは全くわからず > 下記コードからどうすればいいのかわかりません。 俺がわからんわ。 ArrayList にセットする代わりに HashMap にセットするだけやん。 どこかから「サンプルコード」を拾ってきたとするなら、まずは使用しているメソッドや クラスについてマニュアルなどを一つずつ確認してください。

tokyo2199
質問者

お礼

勉強不足で無知な質問をしてしまい申しわけありませんでした。 マニュアルをしっかり熟読していきたいと思います。 ありがとうございました。

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.2

なんとなく、「csvファイルを作り、読み込むところまではわかります」が俺らの想像とは違うような気がする。 わかっていることが確認したいので、CSVファイルを読みこんで各行を標準出力に出力するプログラムを補足に書いてみて。

tokyo2199
質問者

補足

質問すら的確にできなくてすみません。 自分が一体どこまでわかってるのかすらよくわからないほどのど素人ですが、宜しくお願いします。 僕のような素人が要所で説明すると、有識者の方を逆に混乱させてしまいそうなので、下記に現在のコードをのせておきます。今はとりあえずCSVファイルのデータをArrayListにセットし試しにテキストビューに表示するようにしています。HashMapへセットするためのコードは全くわからず下記コードからどうすればいいのかわかりません。 public class CsvSampleActivity extends Activity { String path = "/sdcard/test.csv"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // read csv file readCsvFile(); } private void readCsvFile() { try { // create reader InputStream input = new FileInputStream(path); InputStreamReader ireader=new InputStreamReader(input, "UTF-8"); CSVReader reader = new CSVReader(ireader,',','"',0); String[] csv; //ArrayListを作成 ArrayList<String> list = new ArrayList<String>(); while ((csv = reader.readNext()) != null) { //アイテムの追加 list.add(csv[0]); } //とりあえずテキストビューに表示 final TextView tv = (TextView)findViewById(R.id.tv1); tv.setText(list.get(2)); reader.close(); ireader.close(); input.close(); } catch (FileNotFoundException e) { Log.e("ERROR", e.toString()); } catch (UnsupportedEncodingException e) { Log.e("ERROR", e.toString()); } catch (IOException e) { Log.e("ERROR", e.toString()); } } } 宜しくお願いいたします!

回答No.1

? ファイルの読み込みができて、HashMapへの入れ方(putメソッドを使う)がわかってるのに、セットできないってことは、読み込んだ文字列をキーと値に分割することができないってこと? だったら、String.split()を使うか、StringTokenizerを使うといいでしょう。 (まぁ、String.splist()で充分だと思いますが。)

tokyo2199
質問者

お礼

ありがとうございます。 HashMapへのセットするための記述方法がわかりません。 String.split()など有効なメソッドがあることは何となくわかるのですが、使いどころがわからないというか・・・ コードで直接書いた場合は map.put( "Key1", "あ1001" ); のように単純にセットできるのはわかるのですが、 CSVファイルからセットする場合の手順がわらないのです。 素人過ぎて説明もうまくできなくてすみません。 現在はcsvファイルを読み込み、ArrayAdapterにセットした状態です。スピナーやリストビューへはsetAdapterでセットできますが、この読み込んだcsvファイルをHashMapへセットしていくコードが全く分からない状態です。 サンプルコードなどいただければ大変助かるのですが・・・ わかりにくい質問で申しわけありませんが、宜しくお願いいたします。

関連するQ&A

専門家に質問してみよう