将EditText名称获取为数组变量android

时间:2015-04-09 17:46:18

标签: java android arrays string variables

我正在开发一个从arrays.xml文件中随机选择一个字符串的应用程序。每个字符串都有3个变量(%1 $ s,%2 $ s,%3 $ s)。第一个来自EditText,第二个来自Spinner(从数组中获取),第三个来自EditText。

我尝试使用String.format但它不起作用,logcat给出了NullPointerException。

<string-array name="blabla"> 
<item>Blabla %1$s blabla %2$s blablabla %3$s.</item>
<item>blablabla %1$s blablabla %3$s blabl %2$s.</item>
</string-array>

和Java代码:

public void invia(View v){
    Spinner eta = (Spinner) findViewById(R.id.etaspin);
    String etastring = eta.getSelectedItem().toString().trim();

    EditText nome = (EditText) findViewById(R.id.nomeins);
    String nomestring = nome.getText().toString();

    EditText citta = (EditText) findViewById(R.id.cittains);
    String cittastring = citta.getText().toString();
    Resources res = getResources();

    String tot = res.getString(R.array.blabla, etastring, nomestring, cittastring);

    tot = myString[rgenerator.nextInt(myString.length)];
     TextView stiusatxt = (TextView) findViewById(R.id.stiusa);
     stiusatxt.setText(tot);
}

目前唯一可行的是随机字符串显示,但没有变量可用。

1 个答案:

答案 0 :(得分:1)

尝试这样做

int random = new Random().nextInt(2);
String tot = String.format(res.getStringArray(R.array.blabla)[random], etastring, nomestring, cittastring);

您的代码遇到问题,因为您尝试使用getString()而非getStringArray()

从数组中读取字符串