2011-12-15 19 views
34

私は2つのアクティビティを持っています:最初のアクティビティのユーザは、2番目のアクティビティを起動するボタンをクリックします。第2アクティビティはすべての作業を行います。onCreateが呼び出されない

onClickListenerインナークラスの中にある第2アクティビティを次のように起動します。明示的に(FirstActivity.this、Simple.Class)を呼び出してみましたが、同じことが起こります。エミュレータ上で

Intent test = new Intent(arg0.getContext(),Simple.class); 
    startActivity(test); 

、私は画面はその第2回の活動を呼び出すように上に移動表示されますが、私が得るすべては黒い画面ですが、何も私のレイアウトからロードされません。私はlogcatを見て、いくつかのバインダースレッドに失敗したメッセージが表示されます。 )(私はOnCreateイベントでベースのコンストラクタを呼び出している:これは私の第二の活動からのonCreate機能ですが、私はログ機能が呼び出されたことを私を示す画面またはlogcatのいずれかから任意の結果を得ることはありません:

public void onCreate(Bundle savedState) 
    { 
     Log.d("SimpleActivity","OnCreate Started"); 

     super.onCreate(savedState); 
    setContentView(R.layout.simple); 

     Log.d("SimpleActivity","OnCreate Ended"); 
    } 

注意を上のコードでsuper.onCreate(savedState)を使用します。

+0

私たちがarg0が何であるかを見ることができるように、さらにコードを投稿してください。あなたはおそらくそれが何であれ使用すべきではありません。 YourActivity.thisを新しい意図に渡すコンテキストとして使用します。 – FoamyGuy

+0

これを解決しましたか?ビュー内に直接インスタンス化されているフラグメントがありますか? –

答えて

123

私に何が起こった私が間違っonCreateメソッドをオーバーライドしていました。私はpublic void onCreate(Bundle savedInstanceState, PersistableBundle persistentState)をオーバーライドしていましたが、実際にはprotected void onCreate(@Nullable Bundle savedInstanceState)をオーバーライドする必要がありました。多分これが誰かを助けるかもしれない!

+13

ありがとう、本当にそれでした! – mrpeardotnet

+11

3年間まだ愚かな間違いをしています。:D –

+1

この愚かなバグは、少なくとも1時間は私を見つけました...くそー、あなたは 'public void onCreate'! –

0

あなたはのonCreateを@Overrideし、あなたがsuper.onCreate(savedState)メソッドを呼び出す必要があり、それに

@Override 
public void onCreate(Bundle savedState) 
{ 
    super.onCreate(savedState); 

    Log.d("SimpleActivity","OnCreate Started"); 
    setContentView(R.layout.simple); 
    Log.d("SimpleActivity","OnCreate Ended"); 
} 
+5

コードサンプルに「super.onCreate(savedState);」と表示されています。今.. –

0

super.onCreate()を追加する必要があります。 Activity docをご覧ください。

public void onCreate(Bundle savedState) 
    { 
    super.onCreate(savedState); 
    } 
1

それは、活動が破壊されていない場合のonCreateは、呼び出されません可能性があります 活動が周りにハングアップする、いくつかの理由であれば、次回そのインスタンス化、それが再作成ではなく、再開されていません...

少なくとも私は今何をしているのですか?私のコードでは今対処しています...アクティビティのライフサイクルは良い論理的な説明です。しかし、私はstartActivityを呼び出すとonCreateが呼び出されます。 ....

編集:もちろん、私はactiを終了するときにfinish()を呼び出さなかったため、 vity。 Doh。

+0

この回答は私の問題を解決するための手掛かりを与えます。私の場合、Activityはオブジェクトフラグの条件で終了し、これはハンドラの実行可能なコードに置かれます。しかし、このオブジェクトは、実行可能ファイルを実行する前にnullになります。ありがとうございました。 – jrhamza

0

このこの特定の問題に関連していないが、また、活動は、マニフェストファイルで宣言されていない場合にこの現象が発生することができます)

0

AppCompatActivityまたはアクティビティに属しているかどうかに注意してください。

それはあなたがライフサイクルまたは任意のオーバーライドメソッドを追加したい場合は、私は CTRL+Oを押すかCode > Override methodsを行うことをお勧めし、そこに方法が

を所属場所あなたが見ることができるまで、あなたのクラスに実装するものに

です

Screenshot for illustrative purposes - Android Studio's "Methods to Override" dialog

関連する問題