2017-09-11 11 views
-2

コールバックイベント(onCreate()、onStart()...)ごとに、どのコールバックイベントがログに記録されたかを記録します(Log.dを使用)。ログに書き込まれるメッセージは "strings.xml"で定義され、getResources.getString()はメッセージの取得に使用されるべきである。ライフサイクルコードがコンパイルされない

実装onSaveInstanceStateとonRestoreInstanceState - onSaveInstanceStateが呼び出されている回数を追跡するonRestoreInstanceState、ログファイルに値を印刷し、「ログイン」文の

タグものstrings.xmlで定義され、getResources.getStringを(使用して設定する必要があります)

package com.csci235labs.rob_lifecycles; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 

public class MainActivity extends AppCompatActivity { 

String TAG = getResources().getString(R.string.app_name); //Logcat tag 
String ActivityState; 
int instanceTimes; //number of times instance is called 
String Act_keys; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //recover instance state 
    if(savedInstanceState!=null) 
    { 
     ActivityState = savedInstanceState.getString(Act_keys); 
    } 
    else 
    { 
     instanceTimes=0; 
     Act_keys=""; 
    } 

    setContentView(R.layout.activity_main); 


} 

@Override 
protected void onRestoreInstanceState(Bundle savedInstanceState) { 
    super.onRestoreInstanceState(savedInstanceState); 
} 

@Override 
protected void onSaveInstanceState(Bundle outState) { 
    instanceTimes++; 
    ActivityState=String.valueOf(instanceTimes); 

    outState.putString(Act_keys,ActivityState); 

    super.onSaveInstanceState(outState); 
} 


@Override 
protected void onStart() { 
    super.onStart(); 
    //logs event message 
    String eventMessage=getResources().getString(R.string.on_start_str); 
    Log.d(TAG,eventMessage); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    //logs event message 
    String eventMessage=getResources().getString(R.string.on_resume_str); 
    Log.d(TAG,eventMessage); 
} 

@Override 
protected void onPause() { 
    super.onPause(); 
    //logs event message 
    String eventMessage=getResources().getString(R.string.on_pause_str); 
    Log.d(TAG,eventMessage); 
} 

@Override 
protected void onStop() { 
    super.onStop(); 
    //logs event message 
    String eventMessage=getResources().getString(R.string.on_stop_str); 
    Log.d(TAG,eventMessage); 
} 

@Override 
protected void onDestroy() { 
    super.onDestroy(); 
    //logs event message 
    String eventMessage=getResources().getString(R.string.on_destroy_str); 
    Log.d(TAG,eventMessage); 
} 
} 

XMLファイル:

<resources> 
    <string name="app_name">rob_lifecycles</string> 
    <string name="app_str">teststring</string> 
    <string name="on_create_str">onCreate() method</string> 
    <string name="on_start_str">onStart() method</string> 
    <string name="on_resume_str">onResume() method</string> 
    <string name="on_pause_str">onPause() method</string> 
    <string name="on_stop_str">onStop() method</string> 
    <string name="on_destroy_str">onDestroy() method</string> 
    <string name="action_settings">Settings</string> 
</resources> 
+0

をnullポインタ例外を提供します。 –

+0

また、どのようなエラーがありますか?そしてどのラインがそれらを引き起こすのですか? –

答えて

0

ためcontext.getResources())外のタグの初期化を削除し、のonCreate(に移動あなたはXMLコードをあなたの質問を編集する必要があり、その場合には

public class MainActivity extends AppCompatActivity { 

String TAG; 
String ActivityState; 
int instanceTimes; //number of times instance is called 
String Act_keys; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


    setContentView(R.layout.activity_main); 
    TAG = getResources().getString(R.string.app_name); //Logcat tag 
    //recover instance state 
    if(savedInstanceState!=null) 
    { 
     ActivityState = savedInstanceState.getString(Act_keys); 
    } 
    else 
    { 
     instanceTimes=0; 
     Act_keys=""; 
    } 
} 
+0

こんにちは感謝の芽私はそれがあなたのために働いた場合 – Rob

+0

を感謝します、答えを受け入れることを忘れないでください@ロブ –

関連する問題