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

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

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

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

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

Android Studio

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

Q&A

解決済

2回答

1824閲覧

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

kimura

総合スコア59

XML

XMLは仕様の1つで、マークアップ言語群を構築するために使われています。

Java

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

Android Studio

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

0グッド

0クリップ

投稿2015/08/09 04:11

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

現在このように書きました。
素人の質問に素人の書き方で分かりにくいので大変申し訳ありませんがご指示お願い致します。

A activity

XML

<Button android:layout_width="0dp" android:layout_height="100dp" android:layout_weight="1" android:id="@+id/mission_Button" android:onClick="getMission" android:text="@string/mission_button" />

java

public class MyPage extends ActionBarActivity {

public final static String EXTRA_MISSION = "com.dotinstall.myrpgapp.MISSION";

}

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my_page); } public void getMission(View view) { Button mission_button = (Button) findViewById(R.id.mission_Button); String mission = mission_button.getText().toString().trim(); if (mission.equals("")) { mission_button.setError("現在エラー中です。"); } else { Intent intent = new Intent(this, mission.class); intent.putExtra(EXTRA_MISSION, mission); startActivity(intent); } }

B activity

java

public class mission extends ActionBarActivity {

@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mission); Intent intent = getIntent(); String mission = intent.getStringExtra(MyPage.EXTRA_MISSION); }

}

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

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

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

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

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

guest

回答2

0

ベストアンサー

BのActivityのクラス名をMissionActivityなどに変えて、以下の行を直してみてください。

Java

1Intent intent = new Intent(this, mission.class);

Java

1Intent intent = new Intent(this, MissionActivity.class);

或いは、以下の行を直してください。

Java

1String mission = mission_button.getText().toString().trim(); 2// AND 3if ("".equals(mission)) { 4// AND 5intent.putExtra(EXTRA_MISSION, mission);

Java

1String missionStr = mission_button.getText().toString().trim(); 2 3if ("".equals(missionStr)) { 4 5intent.putExtra(EXTRA_MISSION, missionStr);


Activityの遷移には、必ずIntentが必要なのか?
という質問に関してですが、答えはYESです。

1つの画面 = 1つのActivity
というようにしている場合、必ずIntentを使って遷移させます。
Intentを使いたくないという場合は、
1つの画面 = 1つのActivity
という設計を見直す必要があるかと思います。

方法としては、
Fragmentを使う
Activity#setContentViewを使う
などがあります。
ただ、前者はいいですが、後者はおすすめしません。ソースコードがぐちゃぐちゃになったり等、あまり良いことがないので。

どちらにしろ、ソースコードはIntentを使うより遥か複雑になります。

投稿2015/08/09 04:29

編集2015/08/09 10:21
shiolier

総合スコア1156

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

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

kimura

2015/08/09 08:38

詳しく書いていただきありがとうございます。 大変勉強になりました。
kimura

2015/08/09 09:00

また質問させていただきたいのですがintentはActivityを変えるときには必ず必要なのでしょうか? もっと簡単な方法があるのかな?と思いまして質問させていただきました。
kimura

2015/08/10 14:37

詳しくありがとうございました。 非常に勉強になりました。
guest

0

A activity java

if文の中に書く必要はないですが
エラー処理をしているようなので

if (mission.equals("")) { mission_button.setError("現在エラー中です。"); } else { mission_button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(this, mission.class); intent.putExtra(EXTRA_MISSION, mission); startActivity(intent); } }); } }

getMissionをonCreateで呼び出す記述も必要です

投稿2015/08/09 04:24

shaha

総合スコア166

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

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

shiolier

2015/08/09 04:33

横から失礼します。 XMLで android:onClick="getMission" の記述があるので、setOnClickListenerは必要ないと思います。
shaha

2015/08/09 04:36

見落としてました kimuraさん、この回答は無視してください
kimura

2015/08/09 08:39

回答していただけるだけでも大変ありがたいです。 ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問