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

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

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

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

Android

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

Android Studio

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

Q&A

3回答

4573閲覧

EcitTextに入力された文字列を、別のActivity(Intent)のTextViewに表示させるには?

masaakitsuyoshi

総合スコア102

Java

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

Android

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

Android Studio

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

0グッド

1クリップ

投稿2016/04/11 10:29

編集2022/01/12 10:55

こちらを参考にしました。
http://yan-note.blogspot.jp/2010/09/android_4530.html

Sub

public class SubActivity extends AppCompatActivity{ public String name; public String job; public int image; public String comment; public TextView text; public TextView text2; private static final int SUBACTIVITY = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sub_activity); android.support.v7.app.ActionBar actionbar = getSupportActionBar(); actionbar.setHomeButtonEnabled(true); actionbar.setDisplayHomeAsUpEnabled(true); text = (TextView) findViewById(R.id.textView); text2 = (TextView) findViewById(R.id.textView2); TextView text3 = (TextView) findViewById(R.id.textView3); ImageView imageView = (ImageView) findViewById(R.id.imageView); ListView listView = (ListView)findViewById(R.id.listView1); Intent sub = getIntent(); name = sub.getStringExtra("list_names"); job = sub.getStringExtra("list_jobs"); image = sub.getIntExtra("list_images", R.drawable.human); comment = sub.getStringExtra("list_comments"); text.setText(name); text2.setText(job); imageView.setImageResource(image); text3.setText(comment); text.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent njIntent = new Intent(); njIntent.putExtra("LIST_NAMES",name); njIntent.putExtra("LIST_JOBS",job); njIntent.putExtra("LIST_IMAGE",image); njIntent.putExtra("LIST_COMMENT",comment); njIntent.setClassName("com.example.tsuyoshiokaprofile", "com.example.tsuyoshiokaprofile.NameJobEditActivity"); startActivity(njIntent); } }); ーーーーーーー中略ーーーー @Override protected void onActivityResult (int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); if (requestCode == SUBACTIVITY) { if (resultCode == RESULT_OK) { text = (TextView) findViewById(R.id.textView); text2 = (TextView) findViewById(R.id.textView2); Intent njIntent = getIntent(); Bundle extras = intent.getExtras(); String editedName = njIntent.getStringExtra("NAME_INPUT"); String editedJob = njIntent.getStringExtra("JOB_INPUT"); text.setText(editedName); text2.setText(editedJob); Log.d("LogCat", "Log message"); } } }

NameJobEditActivity

package com.example.tsuyoshiokaprofile; ーーーーーーーーーー略ーーーー public class NameJobEditActivity extends AppCompatActivity{ EditText editName; EditText editJob; Button button; String editedName; String editedJob; Intent njIntent; String subName; String subJob; private static final int SUBACTIVITY = 1; String subText; String subText2; int subImage; String subComment; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.name_job_edit); editName = (EditText) findViewById(R.id.editName); editJob = (EditText) findViewById(R.id.editJob); button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //Inputされたのを取得 editedName = editName.getText().toString(); editedJob = editJob.getText().toString(); //保存を押すと、subに戻る。 Intent intent = new Intent(); intent.setClassName("com.example.tsuyoshiokaprofile", "com.example.tsuyoshiokaprofile.SubActivity"); //intentに入力された文字列を詰める intent.putExtra("NAME_INPUT",editedName); intent.putExtra("JOB_INPUT",editedJob); //値を詰めたものをSubに渡して画面遷移する startActivityForResult(intent, SUBACTIVITY); } }); } }

Edit画面で入力し、ボタンを押すと、デフォルトの表示になってしまうのですがなぜでしょうか。。。

ボタンをタップするまではエラーなく動作していますが、記述は合ってますでしょうか?
(startActivityForResult, onActivityResultあたりが合ってるか不安です)

イメージ説明
イメージ説明

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

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

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

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

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

guest

回答3

0

大文字、小文字は区別されたと思います。

name = sub.getStringExtra("list_names"); x njIntent.putExtra("LIST_NAMES",name); O njIntent.putExtra("list_names",name);

投稿2019/05/12 04:31

kamikaze.cappa

総合スコア558

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

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

0

答えはyonaさんが言われてます。

考え方としては、下記のような感じでしょうか。Androidにかぎらず汎用的に使える考え方です。

  1. 任意のViewのテキストをStringとしてgetする
  2. 遷移先へ渡すパラメータに詰める
  3. 遷移先へパラメータを渡す
  4. 画面遷移する
  5. 遷移先でパラメータを受け取る
  6. 受け取ったパラメータを任意のViewにsetする

投稿2016/04/11 12:33

編集2016/04/11 12:34
Odacchi

総合スコア907

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

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

masaakitsuyoshi

2016/04/12 06:23

ご回答ありがとうございます。 考え方の大枠は分かるのですが、具体的なやり方が間違っているようでエラーが出てしまいました。
guest

0

遷移前の画面でIntent#putExtraを使い値を入れて、遷移後の画面でIntent#getStringExtraで値を取得します。

投稿2016/04/11 12:07

yona

総合スコア18155

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

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

masaakitsuyoshi

2016/04/12 06:21

一応自分なりにやってみたのですが、エラーが出てしまいます。 変更箇所 SubのonClick内にputExtra追加 NameJobでgetStringExtra, onClick内にsetText追加など エラー文追加 しました。ご回答いただけると幸いです。
yona

2016/04/12 06:36

異なるActivityのフィールドに対して 直接アクセスできないから、Intentを使ってデータを共有しようとしていることをまず理解してください。 NameJobEditActivityからSubActivityのフィールドにアクセスする処理は書いてはいけません。 subActivity.text.setText(editedName); subActivity.text2.setText(editedJob); 1-SubActivityからIntentにデータを詰めてNameJobEditActivityをstartActivityForResultする。 2-NameJobEditActivityで、Intentからデータを取得して表示する。 3-NameJobEditActivityからSubActivityへ戻る時にIntentにデータを詰めて返す。 4-SubActivityのonActivityResultでNameJobEditActivityの戻りを取得する。
masaakitsuyoshi

2016/04/12 11:00

修正して、追記してみました。 ボタンをタップすると、テキストがなくなり、画像がデフォルトのものになっているようです。Main-Sub-NameJobと値を渡しているのが原因でしょうか?さっぱりわからなくなってしまいました。 修正箇所 NameJobEditActivityのクリックリスナー SubActivityのクリックリスナーと、onActivityResult部分 画像追加 ーーー >>2-NameJobEditActivityで、Intentからデータを取得して表示する。 の部分ですが、NameJobEditActivity側ではテキスト表示しないです。 Edit画面のみ実装し、inputされた文字列をSubに渡して画面を戻す(遷移)させようとしています。
yona

2016/04/12 11:55

MainやSub等名前を出していますが、どこで何をやっているのか、どの画面からどの画面に遷移するのかは説明がないのでわかりません。 要点だけ説明します。 遷移元Activity:A 遷移先Activity:B ・Bにデータを渡す。 →AでIntent#putExtraを使い値をセットする。 ・Aからデータを受け取る →BでActivity#getIntent#getExtra系で値を受け取る。 ・Bからデータを受け取りたい →AでActivity#startActivityForResultを使いBに遷移する。データを受け取る箇所はAのonActivtyResult ・Aに値を返す。 →BでIntentに値をセットし、Activity#setResultしてからActivty#finishする。
masaakitsuyoshi

2016/04/13 08:34

ありがとうございます。 少し自分でやってみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.51%

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

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

質問する

関連した質問