私は理解していないこのメソッドを持っています。 この質問で重要な2つのグローバル変数:Android-メソッドは変数の値を永久に変更しています
-mNextButton; -mCurrentIndex;
mNextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length;
int questionID = nameOfArray[mCurrentIndex].getQuestion();
mQuestionTextView.setText(question);
}
});
ユーザーがmNextButtonをクリックするたびにmCurrentIndexが永久に増加する可能性はありますか?
mQuestionBankは配列の名前です。ごめんなさい。 変数mCurrentIndexがメソッドonClickの終了後に値をどのように変更できるかを知りたいだけです。 メソッド呼び出しの前に1の値を持ち、メソッドが2に変更された場合、メソッドが終了した後に再度1の値を持たないはずですか? – Zgodni
簡単な答え - いいえ、それは=ではない)説明しようとすると、ローカルとグローバルの2種類の変数があります。 locals - 関数内で定義する変数です。それらはメソッドの実行中に作成され、その後は削除されます。グローバル変数 - 異なるもの。クラスフィールド変数などです。クラスインスタンスを作成したときに作成されたメソッドで、値を変更するメソッドがあると、メソッドの実行後も変更が残ります。私は、javaやその他のプログラミング言語に関する基本的な本を読むことをお勧めします。 –
これをクリアするのに役立つには、関数の_outside_を作成した変数( 'mCurrentIndex')を使用しているので、それは存在し続けて同じ値を持ちます。変数が関数の内部で作成された場合は、 'onClick()'が –