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

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

ただいまの
回答率

90.50%

  • Java

    14049questions

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

  • Android

    6617questions

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

  • Android Studio

    3774questions

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

Android開発 遷移先で呼ばれる度にintentの値を更新したい

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 760

tsh

score 2

こんにちは。プログラミングを始めたばかり故知識が浅いので分かりやすく解答をしていただけると嬉しいです。

いま制作しているアプリで明示的intentを使った画面遷移を行っているのですが、遷移元ActivityがputExtra()を使って渡す値を遷移先Activityで受け取ってTextViewに表示したいです。渡す値は毎回違う値を想定しています。

しかし何度か遷移させてみたところgetIntent()をして受け取った値は更新されず、TextViewには初めに受け取った値しか表示されません。

どうすれば想定した通りの動作をしてくれるか分からず調べたところonNewIntenT()やIntent.FLAG_ACTIVITY_NEW_TASKといった言葉が出てきましたが意味もよくわからず…これ以外でも構わないので、受け取るintentの値を更新する方法をどなたか教えてくださいm(;__)m

(追記)

final Button toTopButton = (Button)findViewById(R.id.toTopList);
        toTopButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent toTopIntent = new Intent(ListActivity.this,MainActivity.class);
                TextView item = (TextView)findViewById(R.id.listTime);
                toTopIntent.putExtra("todayTop",item.getText().toString());
                startActivity(toTopIntent);
            }
});
これが遷移元のアクティビティで、別アクティビティのEditTextに入力された値をintentで受け取ってTextViewへ表示し、そのTextViewから値を取得して遷移先アクティビティへintentを使って渡しています。

regData = intent.getStringExtra("todayTop");

        TextView textView = (TextView)findViewById(R.id.text);

        if(regData != null){
            textView.setText(regData);
        }
こちらが遷移先アクティビティです。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

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

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • abs123

    2016/04/14 15:09

    状態がいまいち把握しきれません、方法以前の問題かもしれないので、ソースコードの追加をお願いします。

    キャンセル

  • tsh

    2016/04/14 16:23

    分かりにくくてすみません、コードを追記しましたm(;__)m

    キャンセル

回答 2

0

遷移元Activity→A
遷移先Activity→B

AからBに遷移する時にAで毎回違う値をIntent#putExtraに詰めてActivity#startActivityを使って遷移しているんですよね?
BからAに戻り、さらにBに遷移する時にIntentに異なる値を設定して遷移していますか?
上記の通り実装しているなら毎回変わります。

コードの追記をお願いします。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/14 16:27

    回答をありがとうございます。コードの追記をしました。
    yonaさんがいうように実装していると思うのですが値が変わってくれません…(;_;)

    キャンセル

  • 2016/04/14 16:54

    コードの一部分だけ見せられてもわかりません。
    今回であればintentの取得方法がわかる箇所も追加すべきです。
    せめてメソッド単位で貼り付けてください。
    また、コードはコード専用の記述方法があるのでそちらに修正してください。

    キャンセル

0

toTopIntent.putExtra("todayTop",item.getText().toString());
regData = intent.getStringExtra("todayTop");

どちらかのクラスに定数として宣言し、使用するのが良いと思います。

先ほどの回答は忘れてください・・・

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/04/14 18:40 編集

    Javaの仕様では文字列リテラルは同一インスタンスになるのでハードコーディングしても大丈夫だと思います。

    けれど、ハードコーディングは間違いの元なのでリファクタリングはした方がいいですね。

    キャンセル

  • 2016/04/14 19:12

    そんな仕様があったとは・・・
    同じ文字列リテラル同士比較してtrue返ってくるのは知ってましたが、
    クラス別でも大丈夫だったんですね・・・指摘ありがとうございます。

    キャンセル

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

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    android SharedPreferences 使い方 保存方法

    質問よろしくお願いします。 まだまだ勉強したての初心者です。 androidの開発中でゲームを作成していて、 今回のゲーム結果をA部分にタイム表示し、それをBの部分に保存(前回

  • 解決済

    Android Studio 画面遷移同じ画面から2つ

    画面遷移を button_01,button_02で行いたいのですが、 public void onCreate(Bundle savedInstanceState) {これを、お

  • 解決済

    コンテキストメニューで、MenuItemにデータを渡したい

    こちらの記事を元にして、コンテキストメニューを表示しました。 http://techbooster.org/android/ui/13709/ 問題は、メニューの選択時に、Me

  • 解決済

    java android

    java、android開発について。別所でも質問させてもらいましたがこちらでもおねがいします。 初心者なのでよく分かりません、質問をいくつかさせてください。多分細かいところまで聞

  • 解決済

    ボタンクリックでアクティビィティ移動

    Aのactivityにボタンをつけています。 このボタンをクリックするとBのactivityの画面に行くようにしたいのですが、やり方を教えていただけませんか? 現在このように書

  • 解決済

    【Android】非同期処理後にページ遷移をしたい

    【10月6日質問編集】 おこなっていることは、 dialogfragmentでonClickをすると非同期処理をおこない、  非同期処理が終了したら Activityの遷移をおこ

  • 解決済

    複数のButtonを区別してintentさせたい

    MainActivityにbuttonAとbuttonBがあり、両方ともSubActivityにintentで移動するようになっています。SubActivityのtextViewで

  • 解決済

    Java Android SeekBarの値を渡す

    SeekBarを使ってMainclassから違うクラスに値を渡したいです。 違うクラスというのが、Serviceを使っているので、Intentを使ってやるやり方がよく分かりません

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

  • Java

    14049questions

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

  • Android

    6617questions

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

  • Android Studio

    3774questions

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