Я делаю приложение для местной карточной игры для трех игроков, где есть два вида деятельности.Один, который является своего рода калькулятором, который вычисляет результаты, и второй, где упомянутые результаты должны быть отображены.Однако, поскольку я не являюсь экспертом в Java и программировании в целом, он не работает.
В моем приложении сейчас происходит то, что результат первого игрока (в моем случае Тома) берется из калькулятора.активность и отображается в первом textView
и имя игрока первого.Но когда я повторяю эту операцию, намереваясь отобразить второй результат во втором textView
, он просто перезаписывает первый textView
.Я уже пробовал следующее:
- с использованием
startActivity
- с использованием
startActivityForResult
- , завершив действие калькулятора (называемое MainActivity) с
finish()
- с использованием
Bundle
вместо Intent
, но ничего из этого не сработало.
В операции калькулятора (называемой MainActivity):
final Button zapsat = (Button)findViewById(R.id.button3);
zapsat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final TextView tomVysledek = (TextView)findViewById(R.id.textView_tom2);
//final TextView tataVysledek = (TextView)findViewById(R.id.textView_tom3);
//final TextView kubaVysledek = (TextView)findViewById(R.id.textView_tom4);
Intent intent = new Intent(MainActivity.this, Results.class);
intent.putExtra("tomVysledek", tomVysledek.getText().toString());
startActivity(intent);
}
});
InonCreate
действия Результаты (где я хочу отобразить результаты):
TextView textView_tomV1 = (TextView) findViewById(R.id.textView_tomV1);
TextView textView_tomV2 = (TextView) findViewById(R.id.textView_tomV2);
.
.
.
TextView textView_tomV5 = (TextView) findViewById(R.id.textView_tomV5);
int tomZapis = 0;
Intent intent = getIntent();
try {
tomZapis = Integer.parseInt(intent.getStringExtra("tomVysledek"));
} catch (Exception e){}
String tomZapis_tv = Integer.toString(tomZapis);
if (textView_tomV1.getText().equals("0")) {
textView_tomV1.setText(tomZapis_tv);
} else if (textView_tomV2.getText().equals("0")){
textView_tomV2.setText(tomZapis_tv);
} else if (textView_tomV3.getText().equals("0")){
textView_tomV3.setText(tomZapis_tv);
} else if (textView_tomV4.getText().equals("0")) {
textView_tomV4.setText(tomZapis_tv);
} else if (textView_tomV5.getText().equals("0")) {
textView_tomV5.setText(tomZapis_tv);
} else {
Toast.makeText(Results.this, "Už není místo :(", Toast.LENGTH_LONG).show();
}
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intentres = new Intent(Results.this, MainActivity.class);
startActivityForResult(intentres, 1);
}
});
Как я уже сказал, он всегда отображает результат в первом textView
(textView_tomV1
), а не находитпервый пустой textView
и заполнение его переменной.Я полагаю, что это потому, что startActivity
фактически возобновляет действие, но я не уверен в этом, и даже если бы это было так, я бы тоже не знал, что с ним делать.