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

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

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

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

Java

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

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

解決済

listviewで取得したデータを遷移先のActivityでも取得したい

Haru_T
Haru_T

総合スコア34

SQLite

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

Java

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

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

1回答

0リアクション

1クリップ

3409閲覧

投稿2016/10/17 06:26

英単語帳アプリを作っています。
その中でListviewを使ってデータベースに入れている単語の一覧を表示させるActivityを用意したいと考えています。
そして、表示されている単語をクリックすると、その単語の詳細データを表示させるActivityに遷移させるようにしたいのです。
自分で調べて遷移させる方法は分かったのですが、タップした単語と画面遷移後のActivityに表示する詳細データの単語とを同じものにするにはどうすればいいのかが分かりません。
単語を示す変数を受け渡しすればいいと思っているのですが、for文でListを作っているため、どこにputExtraを用意すべきかが分かっていません。アドバイスお願いします、、、

java

public class ListActivity extends AppCompatActivity { /*ListViewでデータベースの単語一覧を表示*/ private SQLiteDatabase databaseObject; private DataBaseHelper dbhelper = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); final ListView mListView = (ListView) findViewById(R.id.word_list); dbhelper = new DataBaseHelper(this); databaseObject = dbhelper.getReadableDatabase(); ArrayList<String> data = new ArrayList<String>(); String query = "SELECT * " + "FROM WordData"; Cursor cursor = databaseObject.rawQuery(query, null); cursor.moveToFirst(); for (int i = 0; i < cursor.getCount(); i++) { data.add(cursor.getString(0)); cursor.moveToNext(); } cursor.close(); databaseObject.close(); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, data); mListView.setAdapter(adapter); //タップした単語の詳細を表示するActivityに画面遷移 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { ListView listView = (ListView)parent; String item = (String)listView.getItemAtPosition(position); //ここで値を渡す?? Intent intent = new Intent(getApplicationContext(), WordActivity.class); intent.putExtra("word", item); /*処理は合ってる??*/ startActivity(intent); } }); }

java

public class WordActivity extends AppCompatActivity { /*ListViewのitemをタップして詳細データを表示*/ private DataBaseHelper dbhelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_word); dbhelper = new DataBaseHelper(this); SQLiteDatabase databaseObject = dbhelper.getReadableDatabase(); /*ここで値を受け取る??*/ Intent intent = getIntent(); String item = intent.getStringExtra("word"); String query = "SELECT * " + "FROM WordData"; Log.d("query", "query = " + query); Cursor cursor = databaseObject.rawQuery(query, null); String word = cursor.getString(0); String pron1 =cursor.getString(1); String pron2 = cursor.getString(2); String mean1 = cursor.getString(3); String mean2 = cursor.getString(4); String des = cursor.getString(5); String part = cursor.getString(6); TextView wordView = (TextView)findViewById(R.id.word_view); wordView.setText(word); TextView pronView =(TextView) findViewById(R.id.pron_view); pronView.setText("【" + pron1 + pron2 + "】"); TextView partView =(TextView) findViewById(R.id.part_view); partView.setText(part); TextView mean1View =(TextView)findViewById(R.id.mean1_view); mean1View.setText("①" + mean1); TextView mean2View =(TextView) findViewById(R.id.mean2_view); mean2View.setText("②" + mean2); TextView desView = (TextView) findViewById(R.id.des_view); desView.setText("※" + des); } }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

SQLite

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

Java

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

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。