テーブルに問題があり、ラベルを更新しています!ここではジレンマがあります。アイテムを売るたびにプレイヤーのコインを更新している、その部分が完璧に動作している、私のゲームに売りボタンがあります。私が抱えている問題は、この別個のメニューにある間に画面上でコインの価値を更新しようとしていることです(写真の左上のコインを参照してください)。問題は、コインの価値が別のクラスの別の段階にあることです。これは、下部にある異なるボタンをクリックすると、中央にポップアップするテーブルが異なるためです。私は、そのテーブルに入ってそのテーブルをクリアし、それを更新してこのアイテムページに送り返すヘルパーメソッドを試しましたが、それは動作しません、私は必要なコードを投稿できますが、これはラベルを更新する方法に関する一般的な質問ですステージ内のテーブル内でLibgdxテーブル内のラベルを更新する
更新:だからちょっと私の質問をまとめるために、私はスクリーンを持っていると私はそれで3つのテーブル下の表左上と右上を持っています。次に、私は彼らが在庫や店のボタンなどを押すと、真ん中のステージにテーブルを追加します。私がしたいのは、アイテムページを開いたままにして、単にCoinラベルの値を更新することです。 .setText()を使用してテキスト。イム私は、画面などの部分を更新する方法だけでわからない...
アップデート2:私はちょうどこの画面の新しい画面に画面のバック設定されている場合それはコインの値を更新しますが、私はオンになっていませんよもうアイテムページは理想的ではありません。
アップデート3:ヘルプ今のところみんなのためおかげで、@ジョンあなたの答えは、超便利aswellです。私はまだラベルが処理されているコードの少しここではこれを動作させていない。
playerCoinLabel = new Label(playerSave.getCoinsString(),skin,"defaultMiddle");
ここがテーブルに追加されています。
tableLeft = new Table(skin);
stage.addActor(tableLeft);
tableLeft.setBounds(0,0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
tableLeft.setFillParent(true);
tableLeft.top().left();
tableLeft.add(healthNonButton).size(84,80).left().padLeft(10).padTop(5);
tableLeft.add(playerHealthLabel).left().padLeft(15);
tableLeft.row();
tableLeft.add(levelNonButton).size(74,70).center().padLeft(10);
tableLeft.add(playerLevelLabel).left().padLeft(19);
tableLeft.row();
tableLeft.add(coinNonButton).size(74,70).center().padLeft(10);
tableLeft.add(this.playerCoinLabel).left().padLeft(15); //This line
tableLeft.row();
その後、私はあなたたちはについて私に言っていたようのsetTextを使用して、私のラベルを更新するため、この方法を持っています。
public void updatePlayerCoins() {
playerCoinLabel.setText(playerSave.getCoinsString());
}
と私はどこでも、このメソッドを呼び出した場合、レンダリング()、または、それは私の画面の左上にラベルを変更/更新されていない新しいコイン値を設定イム。私はちょうどラベルを含むものを投稿する必要がある場合、私はgithubにすべてのコードを投稿することができます。これは単なる私のスキルセットを増やすために取り組んでいるプロジェクトなので、私が素人に聞こえるとすみませます。
ありがとうございました!
NullPointerExceptionsの原因を確認してください。 – Sparcsky
私はコードをポストすることができますが、これを行う前に、テーブルや何かの単一セルを簡単に更新する簡単な方法はありますか?私は変更リスナーを試しましたが、うまくいきませんでしたか? @Ian – johnnyboy5566
簡単な方法は、そのラベルで 'setText'を呼び出すことです。画面上のレイアウトが自動的に更新されない場合は、コードに問題があります。 – Tenfour04