Основное действие не обновляет результаты намеренийAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Основное действие не обновляет результаты намерений

Сообщение Anonymous »

Я разрабатываю игру, в которой моим основным занятием (GameActivity) являются прятки. Затем есть второе действие (InventoryActivity), где игроки могут использовать предметы, влияющие на их характеристики (например, количество очков жизни). Я могу получить очки жизни текущего игрока во втором действии и изменить их, если он использует предмет из своего инвентаря. Проблема возникает, когда я заканчиваю второе действие: очки жизни не отправляются в основное действие.
Я думаю, что это проблема намерения, которое не возвращается должным образом в основное действие. p>
Чтобы получить информацию для моего второго действия, я сделал следующее в своем основном действии:
@Override
protected void onActivityResult(int requestCode , int resultCode, данные намерения @Nullable) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1001 && resultCode == RESULT_OK && data != null) {
ArrayList itemsFound = data.getParcelableArrayListExtra("ITEMS_FOUND");
ArrayList playerInventory = data.getParcelableArrayListExtra("PLAYER_INVENTORY");
int updatedHearts = data.getIntExtra("CURRENT_PLAYER_HEARTS", 0); // Récupérer les points de vie mis à jour
currentPlayerIndex = data.getIntExtra("CURRENT_PLAYER_INDEX", 0); // Mettre à jour l'indice du joueur actuel
Player modifiedPlayer = data.getParcelableExtra("CURRENT_PLAYER"); // Récupérer le joueur mis à jour

if (modifiedPlayer != null) {
for (int i = 0; i < allPlayers.size(); i++) {
Player currentPlayer = allPlayers.get(i);
if (currentPlayer.getName().equals(modifiedPlayer.getName())) {

allPlayers.set(i, modifiedPlayer);

updateHeartsDisplay(modifiedPlayer.getHearts());

Log.d("GameActivity", "Joueur mis à jour : " + modifiedPlayer.getName() + ", Points de vie : " + modifiedPlayer.getHearts());
break;
}
}
}
}
} `

Чтобы запустить инвентаризацию с использованием намерений, я использовал следующее:
`private void launchInventoryActivity(Player currentPlayer) { // Prepare data for inventory activity ArrayList itemsFound = new ArrayList(); Item lastItemAdded = currentPlayer.getLastItemAdded(); if (lastItemAdded != null) { itemsFound.add(lastItemAdded); } ArrayList playerInventory = new ArrayList(); playerInventory.addAll(currentPlayer.getItems()); Intent inventoryIntent = new Intent(GameActivity.this, InventoryActivity.class); inventoryIntent.putParcelableArrayListExtra("ITEMS_FOUND", itemsFound); inventoryIntent.putParcelableArrayListExtra("PLAYER_INVENTORY", playerInventory); inventoryIntent.putExtra("CURRENT_PLAYER", currentPlayer); // Add logs to verify data sent to InventoryActivity inventoryLauncher.launch(inventoryIntent); }`

Наконец, в своем вторичном действии я возвращаю информацию об игроке (с его измененными очками жизни) в свое основное действие;
private void finishTurn() {
int currentPlayerIndex = getIntent().getIntExtra("CURRENT_PLAYER_INDEX", 0);
Intent intent = new Intent();
intent.putExtra("CURRENT_PLAYER_HEARTS", currentPlayer.getHearts());
intent.putExtra("CURRENT_PLAYER_INDEX", currentPlayerIndex + 1);
intent.putExtra("CURRENT_PLAYER", currentPlayer);
setResult(RESULT_OK, intent);
finish();
}


Подробнее здесь: https://stackoverflow.com/questions/782 ... nt-returns
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Основное действие не обновляет результаты намерений
    Anonymous » » в форуме JAVA
    0 Ответы
    55 Просмотры
    Последнее сообщение Anonymous
  • Показывать рекламу при открытии приложения в Admob JAVA не открывает основное действие, после объявления оно зависает в
    Anonymous » » в форуме Android
    0 Ответы
    122 Просмотры
    Последнее сообщение Anonymous
  • Как исправить: основное действие не расширяет AppCompatActivity
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как исправить: основное действие не расширяет AppCompatActivity
    Anonymous » » в форуме Android
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Основное действие не расширяет AppCompatActivity
    Anonymous » » в форуме JAVA
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»