Когда я нажимаю кнопку, мне нужна кнопка, чтобы передать только выбранную строку.
Я пытаюсь передать конкретную строку, если целое число равно 2.
Покажите, что это мое первое занятие под названием PlayerChoose:
//PI1 and PI2 is Strings from another Activity.
PI1 = getIntent().getStringExtra("Player1Text");
PI2 = getIntent().getStringExtra("Player2Text");
//These bellow are buttons.
Player1Btn = findViewById(R.id.PlayerToD1);
Player2Btn = findViewById(R.id.PlayerToD2);
//These Integers is to set 0 so the app is not broken.
PlayerInt1 = 0;
PlayerInt2 = 0;
//Here im setting text to the buttons so you know what player you pick
Player1Btn.setText(PI1);
Player2Btn.setText(PI2);
//These button adds 1 to the Integer PlayerInt1 so if you hit it
//twice it executes what is in the if statement.
Player1Btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PlayerInt1++;
if (PlayerInt1 == 2) {
Intent TruthOrDare1 = new Intent(PlayerChoose.this,TruthOrDare.class);
TruthOrDare1.putExtras(getIntent());
TruthOrDare1.putExtra("Player1Text", PI1);
startActivity(TruthOrDare1);
}
}
});
//Same button as Player1Btn Does the same things.
Player2Btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PlayerInt2++;
if (PlayerInt2 == 2) {
Intent TruthOrDare2 = new Intent(PlayerChoose.this,TruthOrDare.class);
TruthOrDare2.putExtras(getIntent());
TruthOrDare2.putExtra("Player2Text", PI2);
startActivity(TruthOrDare2);
}
}
});
}
}
Вот мое второе занятие под названием TruthOrDare:
//PI1 Should take what i passed with "Player1Text" and save it as a
//String
//PI2 Should take what i passed with "Player2Text" and save it as a
//String
PI1 = getIntent().getStringExtra("Player1Text");
PI2 = getIntent().getStringExtra("Player2Text");
//PlayerTurnName1 and PlayerTurnName2 is textviews
PlayerTurnName1 = findViewById(R.id.PlayerTurnText1);
PlayerTurnName2 = findViewById(R.id.PlayerTurnText2);
//Here i set text to textview whatever have been passes PI1 or PI2
//Depending
PlayerTurnName1.setText(PI1);
PlayerTurnName2.setText(PI2);
Моя проблема заключается в том, что он передает обе строки PI1, PI2 вместо PI1, только если я нажимаю Player1Btn в PlayerChoose Activity и PI2, если я нажимаю Player2Btn. Как я могу передать только PI1, если я нажму Player1Btn, и PI2, если я нажму PI2.
2 ответа
Кажется, у вас есть ненужные строки
TruthOrDare1.putExtras(getIntent());
TruthOrDare2.putExtras(getIntent());
В слушателях щелчка, который добавляет и PI1 & PI2
Так что в первом упражнении с именем PlayerChoose все просто, вы можете сделать еще одну строку с именем, как бы я ни назвал его PIP1 для примера, вот что вам нужно сделать:
//So Put PI1 as default string of PIP1.
PIP1 = PI1;
//Then in the Buttons OnClickListeners
Player1Btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PlayerInt1++;
//If you click this button it will set PIP1 to the string you want to
//pass in this case PI1
PIP1 = PI1;
if (PlayerInt1 == 2) {
Intent TruthOrDare1 = new Intent(PlayerChoose.this, TruthOrDare.class);
TruthOrDare1.putExtras(getIntent());
//Intead of putting the text itself you put PIP1 thats changing
//depens on what button you click
TruthOrDare1.putExtra("PlayerText", PIP1);
startActivity(TruthOrDare1);
}
}
});
Player2Btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
PlayerInt2++;
//And here you Change the same string PIP1 to PI2
//Here you change the PIP1 to PI2 so PIP1 change to PI2 and not PI1
PIP1 = PI2;
if (PlayerInt2 == 2) {
Intent TruthOrDare2 = new Intent(PlayerChoose.this, TruthOrDare.class);
TruthOrDare2.putExtras(getIntent());
TruthOrDare2.putExtra("PlayerText", PIP1);
startActivity(TruthOrDare2);
}
}
});
Во втором действии под названием TruthOrDare вы меняете это:
//So you only have 1 String Instead of 2 with 1 key
PI1 = getIntent().getStringExtra("PlayerText");
//One TextView
PlayerTurnName1 = findViewById(R.id.PlayerTurnText1);
PlayerTurnName1.setText(PI1);
Концепция заключается в том, что PIP1 меняется каждый раз, когда вы нажимаете кнопку, поэтому она не передает все значения.
Похожие вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.