2014-01-26 38 views
0

我製作了一個應用程序,該應用程序以用戶輸入密碼的屏幕開始。我在底部有文字0123',並且希望每次密碼不正確時它都會從3減少到2(我已經有一個IF else語句,如果密碼是正確的,可以添加此方法的其他),但我不知道如何更新字符串?在運行應用程序時更改字符串

我在考慮使用For循環,並嘗試這樣的:

public String textAttempts(View view){ 
    String attemptsRemaining = getString(R.string.attempts_Remaining); 
    int loopVal; 

    for(loopVal=1;loopVal>=0;loopVal--){ 
     String attmeptsRemaining = 
        attemptsRemaining.replace(loopVal, loopVal); 
    } 
    return attemptsRemaining; 
} 

但是它變得非常混亂,由於不必INT轉換爲字符串,並且也使得REPLACE語句不滿。 有沒有人有更好的方式做到這一點?

字符串的XML文件:

<resources> 

<string name="app_name">Stock Control System FINAL</string> 
<string name="action_settings">Settings</string> 
<string name="enter_password">Enter Password</string> 
<string name="edit_message">Enter a message</string> 
<string name="button_confirm">Confirm</string> 
<string name="title_activity_main">MainActivity</string> 
<string name="title_activity_main_menu_passed">MainMenuPassed</string> 
<string name="button_stock">Stock</string> 
<string name="button_products">Products</string> 
<string name="button_supplies">Incoming Supplies</string> 
<string name="button_suppliers">Suppliers</string> 
<string name="button_settings">Settings</string> 
<string name="title_activity_main_stock">MainStock</string> 
<string name="title_activity_main_menu">MainMenu</string> 
<plurals name="attempts_remaining"> 
    <item quantity="one">You have one attempt remaining.</item> 
    <item quantity="other">You have %d attempts remaining.</item> 
</plurals> 

</resources> 
+0

您還在創建一個新的字符串,並且永遠不會返回它。 'attmeptsRemaining'和'attemptsRemaining'不一樣# – Doomsknight

回答

0

聲明一個全局變量像

int attempCount; 

以及每次檢查的嘗試,增加1計數,並在textAttempts簡單地把這個值。

// you can declare your R.string.attempts_remaining like "you have %s remaining attemp" 
public String textAttempts(View view){ 
    String t= getString(R.string.attempts_Remaining); 
    return String.format(t, "" + attempCount); 
} 
1

nr4bt的答案是一個很好的答案,但它不會在需要時將句子從複數變爲單數。什麼你想要做的是這樣的:

在你strings.xml地址:

<plurals name="attempts_remaining"> 
     <item quantity="one">You have one attempt remaining.</item> 
     <item quantity="other">You have %d attempts remaining.</item> 
</plurals> 

在代碼中做到這一點:

attemptsRemainingTextView.setText(getResources().getQuantityString(R.plurals.attempts_remaining, attempRemaining, attempRemaining)); 

瞭解更多關於Android plurals

+0

感謝您的幫助!對不起,它讓我花了一段時間回到你身邊,但我對android開發很陌生,並且在setQuantityString(R.plurals ...)中出現複數形式的錯誤,說複數無法解析或不是字段。你知道我該如何解決這個問題嗎? – user3166793

+0

你把代碼添加到你的strings.xml中了嗎?你可以把它發佈到某個地方,以便我可以看到你的strings.xml文件嗎?確保你導入了你的項目的一個R而不是Android的。確定你已經正確添加了複數部分到你的strings.xml –

+0

再次歡呼你的幫助!我已經添加了字符串XML文件 – user3166793

相關問題