getString()问题

时间:2017-08-31 15:58:05

标签: java android android-fragments

你好我遇到崩溃只出现在这个语法中,在这个声明后它崩溃了ats+=getString(R.string.gal_grietineles , grietinele)+"\n"; 当我使用ats+=getString(R.string.gal_grietineles )+ grietinele+"\n";它流畅时,我在其他语句中使用相同的代码结构,但只有在这一个应用程序崩溃后,这里是完整的Java代码:

    /**
 * IMPORTANT: Add your package below. Package name can be found in the project's AndroidManifest.xml file.
 * This is the package name our example uses:
 *
 * package com.example.android.justjava; 
 *
 */

package com.example.android.justjava;
import java.text.NumberFormat;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.AlarmClock;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import static android.R.attr.name;
import static android.R.id.message;
import static android.R.string.ok;
import static android.os.Build.VERSION_CODES.M;
import static android.provider.AlarmClock.ACTION_SET_ALARM;
import static com.example.android.justjava.R.id.grietine;
import static com.example.android.justjava.R.id.kiek;
import static com.example.android.justjava.R.id.kn;
import static com.example.android.justjava.R.id.sokoladas;
import static com.example.android.justjava.R.id.vardas;

/**
     * This app displays an order form to order coffee.
     */
    public class JustoApp extends AppCompatActivity {

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_justo_app);
            kiekis(kieks);
        }
    int kieks=1;
         boolean sokolada;
         boolean grietinele;
        int k=0;
     String eik;
        private void kiekis(int i) {
            TextView kiek = (TextView) findViewById(R.id.kiek);
            kiek.setText(""+ i);
        }

        public void add (View view)
        {
            kieks++;
            if (kieks>100) {
                kieks = 100;
                Toast.makeText(this, "Negalite vienu metu nusipirkti daugiau nei 100 kavu", Toast.LENGTH_SHORT).show();
            }
                kiekis(kieks);
        }

        public void reset(View view)
        {
            kieks=1;
            kiekis(kieks);
        }

        public void minus (View view)
        {
            kieks=kieks-1;
            if(kieks<1) {
                kieks = 1;
                Toast.makeText(this, "Turite uzsisakyti bent 1 kava", Toast.LENGTH_SHORT).show();
            }
                kiekis(kieks);

        }
        public int kainosSkaiciavimas (int kieks)
        {
            int a=0,b=0;
            if (sokolada)
                a=2;
            if (grietinele)
                b=1;
            return kieks*(5+a+b);

        }
        public String uzsakymoPadarymas ()
        {   grietinele=ar();
            sokolada = arsokoladas();
            k=kainosSkaiciavimas(kieks);
            String vardass=vardas();
            String ats;

            ats=getString(R.string.uzsakovo_vardas, vardass)+"\n";
            ats+=getString(R.string.gal_grietineles )+ grietinele+"\n";
            ats+=getString(R.string.gal_sokolado, sokolada)+"\n";
            ats+=getString(R.string.kiekii,kieks)+"\n";
            ats+=getString(R.string.viso, k) + "\n";
            ats+=getString(R.string.dekoju);

            return ats;
        }
        public void uzsisakyti (View view)
        {

            String ats=uzsakymoPadarymas();
            TextView uzsakymas=(TextView)findViewById(R.id.kn);
                    uzsakymas.setText(ats);
            String zinute = "kelkis luzgiau";
            int valanda = 8;
            int minute=1;
        }


        public boolean ar ()
        {
            CheckBox ar = (CheckBox)findViewById(R.id.grietine);
                   boolean a= ar.isChecked();
            return a;
        }
        public boolean arsokoladas ()
        {
            CheckBox sokoladas = (CheckBox)findViewById(R.id.sokoladas);
                boolean soko = sokoladas.isChecked();
            return soko;
        }
        public String vardas ()
        {
            EditText v =(EditText)findViewById(vardas);
                    String vrd = v.getText().toString();
                    return vrd;

        }
    }

XML Strings.xml代码

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
        <string name="app_name">Tik Java</string>
        <string name="plakta_grietinele">Plakta grietinėlė</string>
        <string name="uzsakovo_vardas">Vardas: <xliff:g id="vardass" example="Justas">%s</xliff:g></string>

    <string name="gal_grietineles">Ar reikes grietines: <xliff:g id="grietinele" example="true"></xliff:g></string>

        <string name="gal_sokolado">Ar reikės šokolado: <xliff:g id="sokolada" example="true">%b</xliff:g></string>

    <string name="kiekii">Kiekis: <xliff:g id="kieks" example="5">%q</xliff:g></string>

    <string name="viso">Viso: $<xliff:g id="k" example="$25"> %d </xliff:g></string>



    <string name="dekoju">Dekoju</string>
    <string name="sokoladas">Šokoladas</string>
    <string name="kiekis">Kiekis</string>
    <string name="text_vardas">Vardas</string>
    <string name="uzsakymas">Užsakymas</string>
    <string name="uzsisakyti">Užsisakyti</string>
    <string name="anuliuoti">Anuliuoti</string>
    <string name="pagardai">Pagardai</string>



</resources>

主要布局activity_justo_app.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.android.justjava.JustoApp">
<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_alignParentTop="true"
    android:layout_alignParentStart="true">
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/text_vardas"
        android:id="@+id/vardas"/>


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/pagardai"
    android:layout_marginLeft="16dp"
    android:layout_marginTop="16dp"
    />

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:text="@string/plakta_grietinele"
        android:paddingLeft="16dp"
        android:layout_marginBottom="8dp"
        android:id="@+id/grietine"/>

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:text="@string/sokoladas"
        android:paddingLeft="16dp"
        android:layout_marginBottom="8dp"
        android:id="@+id/sokoladas"/>
        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/kiekis"
        android:layout_marginLeft="16dp"/>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:layout_marginLeft="16dp"

            android:layout_width="48dp"
            android:layout_height="48dp"
            android:textSize="16dp"
            android:text="-"
            android:textAllCaps="false"
            android:onClick="minus"
            />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0"
        android:textSize="16dp"
        android:layout_margin="5dp"
        android:id="@+id/kiek"
        />

   <Button
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:textSize="16dp"
        android:text="+"
        android:textAllCaps="false"
        android:onClick="add" />

</LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/uzsakymas"
        android:textSize="16dp"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="16dp"
        />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0"
        android:textSize="16dp"
        android:layout_marginTop="8dp"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="16dp"
        android:id="@+id/kn"
        />

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/uzsisakyti"
        android:textAllCaps="false"
        android:onClick="uzsisakyti"
        />
    <Button
        android:layout_marginLeft="16dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="16dp"
        android:text="@string/anuliuoti"
        android:textAllCaps="false"
        android:onClick="reset"
        />
</LinearLayout>
</LinearLayout>
</RelativeLayout>

2 个答案:

答案 0 :(得分:0)

您遗漏了<xliff:g id="grietinele" example="true"></xliff:g>

之间的内容
<string name="gal_grietineles">Ar reikes grietines: <xliff:g id="grietinele" example="true"></xliff:g></string>

所有其他人都有%

答案 1 :(得分:0)

我相信你错过了gal_grietineles标签中的%s,这就是它崩溃的原因。