Android 字符串为我提供数字

Android 字符串为我提供数字,android,android-resources,Android,Android Resources,我的代码不起作用: 公共类MainActivity扩展了AppCompatActivity{ int quantity=2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i( "MainActivity", "modriodfw"

我的代码不起作用:

公共类MainActivity扩展了AppCompatActivity{

int quantity=2;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.i( "MainActivity", "modriodfw" + (R.string.Thankyou));
}

/**
 * This method is called when the order button is clicked.
 */
public void submitOrder(View view) {
    EditText nombre = (EditText) findViewById(R.id.nombre);
    String nombre1 = nombre.getText().toString();
    boolean cream = getstate();
    boolean chocolate = getcState();
    int price = calculatePrice(cream, chocolate);


    String summary = createOrderSummary(price, cream,chocolate,nombre1);

    Intent intent = new Intent(Intent.ACTION_SENDTO);
    intent.setData(Uri.parse("mailto:")); // only email apps should handle this
    intent.putExtra(Intent.EXTRA_SUBJECT, (R.string.OrderMail) + nombre1);
    intent.putExtra(Intent.EXTRA_TEXT, summary);
    if (intent.resolveActivity(getPackageManager()) != null) {
        startActivity(intent);
    }

    displayMessage(summary);

}
public void clearText(View view)
{
    EditText nombre = (EditText) findViewById(R.id.nombre);
    nombre.setText("");
}
private  boolean getcState()
{
    CheckBox state = (CheckBox) findViewById(R.id.chocolate);
    boolean chocolateState = state.isChecked();
    return chocolateState;
}
private  boolean getstate()
{
    CheckBox state = (CheckBox) findViewById(R.id.cream);
    boolean creamState = state.isChecked();
    return (creamState);
}
private String createOrderSummary(int price, boolean cream, boolean chocolate,String nombre1)
{
        String summary = (R.string.name) + nombre1;
    if(cream && chocolate == false){
        summary += "\n" + quantity + (R.string.name);
    }
    if(chocolate && cream == false){
        summary += "\n" + quantity + (R.string.SummaryCream);
    }

    if(chocolate && cream){
        summary += "\n" + quantity + (R.string.SummaryBoth);
    }
    summary += "\nTotal: $" +price;
    summary += "\n" + (R.string.Thankyou);
        return summary;
}

private int calculatePrice(boolean cream, boolean chocolate) {
   int price = 5;
    if (cream) {
        price = price + 1;
    }
    if (chocolate) {
        price = price + 2;
    }
    price = price * quantity;
    return price;
}

public void increase(View view) {
    if (quantity == 99){
        Toast.makeText(this, (R.string.high), Toast.LENGTH_SHORT).show();
        return;

    }
    quantity= quantity + 1;
    display(quantity);

}

public void decrease(View view){
    if (quantity == 1){
        Toast.makeText(this, (R.string.less), Toast.LENGTH_SHORT).show();
        return;
    }
        quantity= quantity - 1;
    display(quantity);

}
/**
 * This method displays the given quantity value on the screen.
 */
private void display(int numb) {
    TextView quantityTextView = (TextView) findViewById(
            R.id.quantity_text_view);
    quantityTextView.setText("" + numb);
}

/**
 * This method displays the given text on the screen.
 */
private void displayMessage(String Summary) {
    TextView summaryTextView = (TextView) findViewById(R.id.Summary_text_view);
    summaryTextView.setText(Summary);
}
我所得到的是:

21301099680 总额:10美元 21301099676

应该是这样

姓名: 总结 总数$ 谢谢大家!


我在android studio中使用java。

您需要执行
context.getString(R.string.your\u string)
,作为
R.string。您的\u string本身只是一个参考。

您忘记在四个地方调用getString方法。我更新了您的代码:

  private String createOrderSummary(int price, boolean cream, boolean chocolate,String nombre1)
    {
            String summary = getString(R.string.name) + nombre1;
        if(cream && chocolate == false){
            summary += "\n" + quantity + getString(R.string.SummaryChocolate);
        }
        if(chocolate && cream == false){
            summary += "\n" + quantity + getString(R.string.SummaryCream);
        }

        if(chocolate && cream){
            summary += "\n" + quantity + getString(R.string.SummaryBoth);
        }
        summary += "\nTotal: $" +price;
        summary += "\n" + getString(R.string.Thankyou);
            return summary;
    }`enter code here`

很抱歉,我没有添加它。我更新了它…请看:)您使用了一次
getString
,因此您无法理解为什么该选项有效,而其他选项显示为数字?它无效..“Total$”是硬编码的。\我这样做了,但我仍然只得到数字而不是字符串文本:您在哪里声明了数量变量?将所有以R.String.开头的单词替换为getString(R.String…)