亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 toString()

使用 toString()

青春有我 2022-06-30 19:11:45
我正在開發一個簡單的 android 骰子游戲,其中 2 名玩家輪流滾動,如果你得到雙打你就贏了。我正在嘗試使用 toString 輸出到當玩家在雙打時獲勝的祝酒詞。這是我的代碼:public class MainActivity extends AppCompatActivity {public static final Random RANDOM = new Random();private Button rollDice;int player = 1;private ImageView dice1, dice2;TextView display;boolean rolling = false;@NonNullpublic String toString(){    return String.valueOf(player);}    @Override    protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);    rollDice = (Button) findViewById(R.id.rollDice);    dice1 = (ImageView) findViewById(R.id.dice1);    dice2 = (ImageView) findViewById(R.id.dice2);    display = (TextView) findViewById(R.id.display);其次是我的 onclick 方法和 random.nextInt 和我的開關案例。然后我在 toast 中調用 toString:                if (d1 == d2){                Context context = getApplicationContext();                String text = "Player " + toString() + " wins!";                int duration = Toast.LENGTH_SHORT;                Toast toast = Toast.makeText(context, text, duration);                toast.show();            }            if (player == 1){                player = 2;            }            else{                player = 1;            }然后它輸出“玩家 com.ellis.newdice.MainActivity$1然后隨機數獲勝”我是錯誤地使用了 toString 方法還是 int 播放器沒有正確使用?
查看完整描述

4 回答

?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

player是一個int,所以在這種情況下你不需要一個toString方法:

String text = "Player " + player + " wins!";

另外,刪除該public String toString()方法,因為您可能對默認Activity.toString()方法有問題....


查看完整回答
反對 回復 2022-06-30
?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

你使用它的toString()方式,你的活動類的方法被調用,
這就是你看到的原因com.ellis.newdice.MainActivity$1
你不需要toString()達到你想要的。
用這個:

String text = "Player " + winner + " wins!";

winner使用您在代碼中為獲勝玩家使用的變量(整數?)進行更改。


查看完整回答
反對 回復 2022-06-30
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

看起來你調用它的對象實際上不是你的MainActivity,而是它內部的一些匿名內部類,可能是一些聽眾。您可能必須將調用替換MainActivity.this.toString()為明確toString()要調用的內容。

更一般地說toString(),它不是一種通常被顯式調用的方法。當您讓其他代碼為您調用它時,它非常有用。例如String s = "foo " + something將隱式調用toString()something假設它是一個對象而不是一個String)。


查看完整回答
反對 回復 2022-06-30
?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

嘗試以下操作:

String text = "Player " + String.valueOf(player) + " wins";

toString 方法是不必要的。String.valueOf(int number) 將獲取您的整數值(獲勝的玩家)并將其轉換為可以顯示在 Toast 中的字符串。


查看完整回答
反對 回復 2022-06-30
  • 4 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號