java - 将 EditText 名称获取到数组变量 android

标签 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);
}

目前唯一有效的是随机字符串显示,但所有变量都不起作用。

最佳答案

尝试这样做

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

您的代码出现问题,因为您尝试使用 getString() 而不是 getStringArray() 从数组中读取字符串

关于java - 将 EditText 名称获取到数组变量 android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29545447/

相关文章:

java - 连续迭代数组 - Java

c - 如何搜索返回值位置和比较次数的数组?

java - 从自定义 View 调用 findViewById 返回 null

java - 无法使用 static var 在 java 线程中获得预期输出

java - 如何修复 Java.lang.StackOverFlow 异常?

android - 如何在不同的类中使用 PendingIntents 取消 AlarmManager?

python - 如何从文件中仅检索那些带有名词标签的单词?

java - 如何在 NetBeans IDE 中重命名我的主类?

java - “J2EE”或“Java EE”如何发音

php - 如何在android中以图形形式表示mysql数据库?