2016-12-28 12 views
1

だから私はアンドロイドのための私の本から、このコードセグメントを理解しようとしています:ここでアンドロイドで 'キー'とgetBooleanExtra()とは何ですか?

public class CheatActivity extends AppCompatActivity { 

private static final String EXTRA_ANSWER_IS_TRUE = "com.britannia.android.quiz.answer_is_true"; 
private boolean mAnswerIsTrue; 
private TextView mAnswerTextView; 
private Button mShowAnswer; 

public static Intent newIntent(Context packageContext, boolean answerIsTrue) { 
    Intent i = new Intent(packageContext, CheatActivity.class); 
    i.putExtra(EXTRA_ANSWER_IS_TRUE, answerIsTrue); 
    return i; 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_cheat); 

    mAnswerIsTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false); 

    mAnswerTextView = (TextView) findViewById(R.id.answerTextView); 

    mShowAnswer = (Button) findViewById(R.id.showAnswerButton); 
    mShowAnswer.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (mAnswerIsTrue) { 
       mAnswerTextView.setText(R.string.true_button); 
      } 
      else { 
       mAnswerTextView.setText(R.string.false_button); 
      } 
     } 
    }); 
} 

}

のための文字列EXTRA_ANSWER_IS_TRUEは何ですか?私はその目的を理解していない。 getBooleanExtra()には2つの引数があります。これは上記の文字列とfalseの値です。それはなぜ偽ですか?このアクティビティの目的は、真実または偽の質問に対する正解を示すことです。なぜその値は偽であり、真実ではないのですか?

ありがとうございました。

+2

本があなたにコードを提示しており、その本がそのコードを説明していない場合は、より良い本が必要です。 :-) – CommonsWare

+0

それは悪くない?この時点まで私には良いことがありました。それは、Android用の大きなNerd牧場ガイドです – BodyBingers

答えて

1

文字列EXTRA_ANSWER_IS_TRUEはちょうどこのような方法でキーを設定することと同じになり、getBooleanExtra()方法のためのキーを設定するために使用されますそれはあなたが意図的なものから得ているものです。ブール値が渡されたときにtrueまたはfalseの正しい値を持つ限り、そのfalseパラメータは使用されません。 (ブール値が宣言されていない場合、またはデフォルトが使用される場合のみ)

0

の文字列EXTRA_ANSWER_IS_TRUEどのようなものです:

このような質問のために

、最初のJavadocをチェック!私はその目的を理解していない。

他のいくつかの活動は、このいずれかを開始しています。他のアクティビティではbooleanの値をCheatActivityに渡す必要があります。 Androidでこれを行う方法は、アクティビティの開始に使用されるIntentに追加情報を追加することです。エクストラはキーバリューストアです。 EXTRA_ANSWER_IS_TRUEで識別されるStringが鍵です。

getBooleanExtra()には2つの引数があります。これは上記の文字列とfalseの値です。

2番目のパラメータはデフォルト値です。指定されたキーの値がない場合、これはgetBooleanExtra()によって返されます。

なぜ偽ですか?

本の著者にお尋ねください。アプリケーションが正しく書かれていれば、そのデフォルト値は決して使用されません。指定されたキーには常に余分なものがあるからです。 falseはブール値のちょうどデフォルト値である

getBooleanExtra("com.britannia.android.quiz.answer_is_true", false); 

+0

私は参照してください。 'EXTRA_ANSWER_IS_TRUE'という名前と与えられた文字列で本当に混乱しました。 – BodyBingers

+0

@BodyBingers:余分なものはかなり奇妙な名前です。 – CommonsWare

0

パラメータ名にはEXTRA_ANSWER_IS_TRUEが使用されます。

クラスをインテントするときに、いくつかのパラメータ(名前:値のペア)を送信できます。

ソースでは、putExtra - > getBooleanExtraがそれを実行しています。

パラメータにname:valueのペアがない場合、getXXXExtraはデフォルト値を持ちます。

ので、

mAnswerIsTrue = getIntent()getBooleanExtra(EXTRA_ANSWER_IS_TRUE、偽)。

セットmAnswerIsTrue "EXTRA_ANSWER_IS_TRUE" の値です。存在しない場合はfalseを設定します。

関連する問題