タイトルへ戻る方法

204 views
Skip to first unread message

くにあつ

unread,
Jan 3, 2015, 10:24:07 AM1/3/15
to android-g...@googlegroups.com
AndroidStudio1.0.1でゲームを制作しています。
タイトルへ戻るボタンを作成して、onCreate()の最初に戻したいのですがどのようにやればよいのでしょうか?


くにあつ

unread,
Jan 3, 2015, 10:28:28 AM1/3/15
to android-g...@googlegroups.com
情報があまりにも少なくなってしまったので追記します。

現状は、ゲーム画面のみを作ったところなのですが、onCreate()が始まった状態に戻したいと考えています。
onCreateの中にのみプログラムを書いているので、continue;のようなことができれば理想です。

自分なりに調べ考えて、
onRestart()やonStop()を書いてみたのですが、変化なしでした。
よく見かけるのに、「Android java 再起動」や「Android タイトルへ戻る 作り方」などでしらべてもいい情報が無いためコチラに書かせていただきます。


よろしくおねがいします。

さわださとし

unread,
Jan 3, 2015, 10:42:51 AM1/3/15
to android-g...@googlegroups.com

さわだ@お風呂です。

「Activityのライフサイクル」で検索してください。

onCreate()の中身を細かいメソッドに分割して、
リファクタリングしましょう!

2015/01/04 0:28 "くにあつ" <satis...@gmail.com>:
--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

くにあつ

unread,
Jan 3, 2015, 11:30:15 AM1/3/15
to android-g...@googlegroups.com
早速お返事ありがとうございます。

明日早速調べてみます!ありがとうございます。

2015年1月4日日曜日 0時42分51秒 UTC+9 Satoshi Sawada:

さわだ@お風呂です。

「Activityのライフサイクル」で検索してください。

onCreate()の中身を細かいメソッドに分割して、
リファクタリングしましょう!

2015/01/04 0:28 "くにあつ" <satis...@gmail.com>:
情報があまりにも少なくなってしまったので追記します。

現状は、ゲーム画面のみを作ったところなのですが、onCreate()が始まった状態に戻したいと考えています。
onCreateの中にのみプログラムを書いているので、continue;のようなことができれば理想です。

自分なりに調べ考えて、
onRestart()やonStop()を書いてみたのですが、変化なしでした。
よく見かけるのに、「Android java 再起動」や「Android タイトルへ戻る 作り方」などでしらべてもいい情報が無いためコチラに書かせていただきます。


よろしくおねがいします。

--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-japan+unsub...@googlegroups.com にメールを送信してください。

Makoto Yamazaki

unread,
Jan 5, 2015, 5:14:18 AM1/5/15
to android-g...@googlegroups.com
zaki です。

今動いているActivity 終了して再度起動したいということだと思いますが、
いくつかやり方があります。

ひとつは、以下のように終了と起動を書く方法。

finish();
startActivity(new Intent(this, HogeActivity.class));

もうひとつは、
CLEAR_TOP フラグをつけたIntent でstartActivity する方法です。

startActivity(new Intent(this, HogeActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

後者の方法は、HogeActivity の launchMode がデフォルトのまま変更されてない
前提です。 launchMode が singleInstance 等になっていると、再起動されずに
onNewIntent(Intent) が呼ばれるだけだったりします。
また、この方法だと、別のアクティビティからでも指定したアクティビティを
再起動することが出来ます。

それと、Activity に定義されている onなんとか という名前のメソッドは、
同じ名前のメソッドの中から super.onなんとか() のような形で呼ぶ以外で
呼び出すことはないとおもって良いです。



--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。

このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。



--
YAMAZAKI Makoto

くにあつ

unread,
Jan 5, 2015, 11:00:54 AM1/5/15
to android-g...@googlegroups.com
ご連絡ありがとうございます。

タイトルへ戻るボタンに
    private void backUi(View view){
        switch (view.getId()){
            case R.id.button2:
                finish();
                startActivity(new Intent(this, title.class));
                break;
        }
    }

というメソッドをわりあてて(<Button android:onClick="backUi" />)みたのですが、エミュレーターの画面に
「Unfortunately,アプリタイトルhas stopped」というエラーメッセージが出たあとに、タイトル画面に戻るようになってしまいます。

のサイトを参考に作りました。
また、このサイトで紹介されている
    private void backUi(View view){
        switch (view.getId()){
            case R.id.button2:
               Intent intent = new Intent(this, title.class);
               startActivity(intent);
             break;
        }
    }

という方法でもおなじエラーメッセージがでるようでした。

コンソールには
java.lang.IllegalStateException: Could not find a method backUi(View) in the activity class io.PC名.アプリ名.MainActivity for onClick handler on view class android.widget.Button with id 'button2'
            at android.view.View$1.onClick(View.java:3994)
            at android.view.View.performClick(View.java:4756)
            at android.view.View$PerformClick.run(View.java:19749)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.NoSuchMethodException: backUi [class android.view.View]
            at java.lang.Class.getMethod(Class.java:664)
            at java.lang.Class.getMethod(Class.java:643)
            at android.view.View$1.onClick(View.java:3987)
            at android.view.View.performClick(View.java:4756)
            at android.view.View$PerformClick.run(View.java:19749)
            at android.os.Handler.handleCallback(Handler.java:739)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

というエラーが書かれていました。Fragmentのエラーだということまでは検索してわかったのですがそれ以上のことはよくわかっていません。




「CLEAR_TOP にフラグをつけたIntent でstartActivity する方法」はまだ試していないので次は、コチラを試したいと思っています。ライフサイクルを調べて入るもののあまり理解できていないのが一番の原因かと思うので調べながらコツコツやっていきます。

状況を随時書き込んでいこうと思っています。
返信有難うございました。何かお気づきのことがありましたらご連絡いただけると幸いです。

taka

unread,
Jan 5, 2015, 9:26:38 PM1/5/15
to android-g...@googlegroups.com
とりあえず以下の修正をしてみましょう。
× private void backUi(View view){
○ public  void backUi(View view){


2015年1月6日火曜日 1時00分54秒 UTC+9 くにあつ:

Ohara Shintaro

unread,
Jan 5, 2015, 10:07:28 PM1/5/15
to android-g...@googlegroups.com
oharaと申します。

エラーの一行目はメソッドbackUiが見つからないというエラーです。

privateになっていて見えないという理由の他に、XMLによるonclickの実装では現在のactivityしか
探さないというのもあるようです。

詳細:



2015年1月6日火曜日 1時00分54秒 UTC+9 くにあつ:

くにあつ

unread,
Jan 8, 2015, 8:40:24 AM1/8/15
to android-g...@googlegroups.com
みなさんのご指摘の通りprivateをpublicにしたら解決しました。
ありがとうございました。
Reply all
Reply to author
Forward
0 new messages