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

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

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

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

Android

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

Android Studio

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

Q&A

解決済

1回答

1763閲覧

[Android Studio]画面遷移をする際の入力したデータの受け渡しについて

退会済みユーザー

退会済みユーザー

総合スコア0

Java

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

Android

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

Android Studio

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

0グッド

0クリップ

投稿2021/09/17 06:24

編集2021/09/17 06:50

前提・実現したいこと

android studioでMainアクティビティへ入力したEditTextの値を渡したいです。

発生している問題・エラーメッセージ

入力を行うアクティビティのEditTextの値を、Mainアクティビティの方で値を受け取るように記述しているのですが、Mainアクティビティの方でLog.d("tag","message")を使用し値を確認するようにコードを書くとコンパイルの時点でエラーが起こってしまい、アプリそのものが実行できなくなってしまいます。

該当のソースコード

・入力を行うアクティビティ

public

1 private static final int RESULT_PICK_IMAGEFILE = 1000; 2 private ImageView imageView,image_menu; 3 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.activity_new_illustration); 8 9 //画像を得る 10 imageView = (ImageView)findViewById(R.id.imageView2); 11 image_menu = (ImageView)findViewById(R.id.imageView3); 12 13 //buttonの要素を得る 14 findViewById(R.id.button2).setOnClickListener(new View.OnClickListener() { 15 @Override 16 public void onClick(View v) { 17 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); 18 intent.addCategory(Intent.CATEGORY_OPENABLE); 19 intent.setType("image/*"); 20 startActivityForResult(intent,RESULT_PICK_IMAGEFILE); 21 } 22 }); 23 24 //戻るボタンの表示 25 getSupportActionBar().setDisplayShowHomeEnabled(true); 26 getSupportActionBar().setDisplayHomeAsUpEnabled(true); 27 28 } 29 30 @Override 31 public boolean onKeyDown(int keyCode, KeyEvent event) {//pauseボタンを押した時の注意アラート 32 if(keyCode == KeyEvent.KEYCODE_BACK) {//pauseボタンの事を指す 33 AlertDialog.Builder builder = new AlertDialog.Builder(this); 34 builder.setMessage("まだ保存されていません、戻ってよろしいですか?").setTitle("注意").setPositiveButton("OK", new DialogInterface.OnClickListener() { 35 public void onClick(DialogInterface dialog, int id) { 36 finish();//元の画面に戻る 37 } 38 }) 39 .setNegativeButton("NO",new DialogInterface.OnClickListener() { 40 public void onClick(DialogInterface dialog, int id) {//何もしない 41 } 42 }); 43 builder.show(); 44 } 45 return super.onKeyDown(keyCode,event); 46 } 47 48 @Override 49 public boolean onOptionsItemSelected(MenuItem item) { 50 int id = item.getItemId(); 51 52 switch (id) { 53 // Backボタンがタップされた場合 54 case android.R.id.home: 55 AlertDialog.Builder builder = new AlertDialog.Builder(this); 56 builder.setMessage("まだ保存されていません、戻ってよろしいですか?").setTitle("注意").setPositiveButton("OK", new DialogInterface.OnClickListener() { 57 public void onClick(DialogInterface dialog, int id) { 58 // ボタンをクリックしたときの動作 59 finish(); 60 } 61 }) 62 .setNegativeButton("NO",new DialogInterface.OnClickListener() { 63 public void onClick(DialogInterface dialog, int id) { 64 65 } 66 }); 67 builder.show(); 68 break; 69 } 70 71 return super.onOptionsItemSelected(item); 72 } 73 74 75 //startActivityForResult 終了後 onActivityResult が呼ばれる 76 @Override 77 public void onActivityResult(int requestCode, int resultCode, Intent resultData) { 78 super.onActivityResult(requestCode, resultCode, resultData); 79 if (requestCode == RESULT_PICK_IMAGEFILE && resultCode == RESULT_OK) { 80 Uri uri = null; 81 if (resultData != null) { 82 uri = resultData.getData(); 83 84 try { 85 Bitmap bmp = getBitmapFromUri(uri); 86 imageView.setScaleType(ImageView.ScaleType.FIT_START); 87 imageView.setImageBitmap(bmp); 88 image_menu.setVisibility(View.INVISIBLE); 89 } catch (IOException e) { 90 e.printStackTrace(); 91 } 92 } 93 } 94 } 95 96 private Bitmap getBitmapFromUri(Uri uri) throws IOException { 97 ParcelFileDescriptor parcelFileDescriptor = 98 getContentResolver().openFileDescriptor(uri, "r"); 99 FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor(); 100 Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor); 101 parcelFileDescriptor.close(); 102 return image; 103 } 104 105 public void myBtnClick(View v){/*保存ボタンが押された時の処理*/ 106 if(v.getId() == R.id.floatingActionButton3){ 107 //タイトルだけ渡してみる 108 EditText title = (EditText)findViewById(R.id.editTextTextPersonName); 109 String text = title.getText().toString(); 110 Intent intent = new Intent(New_illustration.this,MainActivity.class); 111 //確認,textに文がちゃんと入っているか 112 Log.d("確認",text); 113 intent.putExtra("Title",text); 114 115 String message = "保存しました"; 116 displayToast(message); 117 startActivity(intent); 118 } 119 } 120 121 public void displayToast(String message) { 122 Toast.makeText(getApplicationContext(), message,Toast.LENGTH_SHORT).show(); 123 } 124 125} 126

・値を受け取るMainアクティビティ

public

1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.activity_main); 5 6 //値が受け取れているかの確認記述 7 Intent intent = getIntent(); 8 String data1 = intent.getStringExtra("Title"); 9 Log.d("data1:",data1);//ここでエラーが発生している 10 } 11 12 public boolean onCreateOptionsMenu(Menu menu){/*メニューバーを表示する、今回は漫画用の画面に飛ぶ時のアイコンを表示する*/ 13 //Inflate the menu; this adds items to the action bar if it is present. 14 getMenuInflater().inflate(R.menu.menu_action_bar, menu); 15 return true; 16 } 17 18 public boolean onOptionsItemSelected(MenuItem item) { 19 switch (item.getItemId()) { 20 case R.id.action_settings: 21 Intent intent = new Intent(MainActivity.this,Manga.class); 22 startActivity(intent); 23 24 String message = getString(R.string.manga); 25 displayToast(message); 26 27 return true; 28 default: 29 return super.onOptionsItemSelected(item); 30 31 } 32 } 33 34 public void myBtnClick(View v){/*+ボタンが押された時の処理*/ 35 if(v.getId() == R.id.floatingActionButton2){ 36 Intent intent = new Intent(MainActivity.this,New_illustration.class); 37 startActivity(intent); 38 39 String message = "Setting illustration"; 40 displayToast(message); 41 } 42 } 43 44 public void displayToast(String message) {/*Mangaの方にメッセージを表示するメソッド*/ 45 Toast.makeText(getApplicationContext(), message,Toast.LENGTH_SHORT).show(); 46 } 47}

試したこと

EditTextの入力された値を受け取る方法や、画面遷移をする際にIntentを使用したデータの受け渡しなどを調べましたが解決する事ができませんでした。
こういう質問サイトを使用する事が初めてでわかりにくいかもしれませんが、わかる方がいらしたら教えていただきたいです。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

jimbe

2021/09/17 06:42

まず、コードをご提示頂くためにも専用のマークダウンがあります。ヘルプをご覧になって、ご質問を編集して頂けませんでしょうか。
jimbe

2021/09/17 06:55

> コンパイルの時点でエラーが起こってしまい どのようなエラーメッセージが表示されたのでしょうか。
退会済みユーザー

退会済みユーザー

2021/09/17 07:13

jimbeさんの言う通りにエラーメッセージを確認した所、Mainアクティビティを開いた際にdata1の値がnullになっていたためエラーが発生していたようでした。 if文を使用してnullを回避するようにした所、何の問題もなく実行し入力を行うアクティビティから値を受け取る事ができました。 せっかく質問に答えてくれようとしていたのに、このような形になってしまい申し訳ありません。 ありがとうございます。
jimbe

2021/09/17 08:21

いやいや、何が起きているのか確認することは大事ということで、今後の糧となれば良いのではないでしょうか。 回答にベストアンサーを付ければ解決と表示されます。
guest

回答1

0

ベストアンサー

Mainアクティビティの方で"data1"の値がnullになっており、そのせいで実行する事ができずエラーが発生していました。
Mainのoncreateメソッドの中で

if(data1==null){

1}else{ 2Log.d("data1:",data1)

と記述するようにするとエラーが回避できました。

投稿2021/09/17 07:34

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問