2013-03-03 6 views
0

У меня есть один класс с public int Результат; Позже в игре я использую эту переменную для хранения количества очков, которые пользователь делает. Теперь у меня есть другой класс активности/класс, называемый Result, и у меня есть textView в этом действии, и мне нужно использовать переменную Result для sexText для этого textView. Я сделал экземпляр моего игрового класса и назвал его г в классе Result и чем я сделал что-то вроде этого:Как передать целочисленную переменную другому классу

score = (TextView) findViewById(R.id.tvResult); 
     score.setText("Game over!\nYour score is:\n" + k.Result); 

Но я всегда получаю 0. Я думаю, это потому, что я получаю по умолчанию значение переменной, не настоящий. Как я могу передать окончательное значение, добавленное к моей переменной после окончания игры?

Я также попытался это в игровой деятельности, чтобы передать переменную в качестве намерения:

Intent i = new Intent(Quiz.this, Result.class); 
      i.putExtra("newResultVariable", Result); 
      startActivity(i); 

получить также 0.

+0

Пройдите «Пакет» с намерением. –

+0

@codingcrow 'putExtra()' отлично. –

+0

@ A - C Да, это прекрасно. –

ответ

2

Чтобы передать переменную в качестве намерения.

Для программирования на любом языке вы должны следовать соглашению об именовании языка.

В Quiz.java

Intent intent = new Intent(context,Result.class); 
intent.putExtra("newResultVariable", result); 
startActivity(intent); 

В Result.java получить значение.

public void onCreate(Bundle bundle) { 
    .... 
    int score = 0; 
    TextView scoreTextView = (TextView) findViewById(R.id.tvResult); 

    Bundle extras = getIntent().getExtras(); 
    if(extras !=null) { 
     score = extras.getInt("newResultVariable", 0); 
    } 

    scoreTextView.setText("Game over!\nYour score is:\n" + score); 
    .... 
} 
+0

Нет, не работает, все равно 0. Просто чтобы быть понятным, эта часть хорошая: score.setText («Игра над! \ NВаш оценка: \ n" + результат); ? Также получите ошибку «оценка локальной переменной никогда не читается» для вашего счета. – user2083882

+0

@ пользователь2083882 сейчас попробуйте. Я отредактировал свой ответ, чтобы облегчить вам. –

+0

ОК, теперь это работает. Я думаю, что это было какое-то имя конфликта, потому что мой текст был также назван балл. Большое спасибо. – user2083882

1

Прежде всего имя переменной вы дали не хорошо, как это не следует верблюжьего

поэтому он должен быть результат, а не Result.Now попытаться следующим образом:

В Викторине деятельности

Intent intent = new Intent(getApplicationContext(),Result.class); 
intent.putExtra("result_variable", result); 
startActivity(intent); 

В Результат деятельности

getIntent().getIntExtra("result_variable", 0); 
+0

Простите за CamelCase. Это не сработало. Еще 0. Может быть, я делаю что-то неправильно, хотя я скопировал ваш код. – user2083882

Смежные вопросы