Я разрабатываю приложение, которое произвольно выбирает строку из файла arrays.xml. Каждая строка имеет 3 переменные (% 1 $ s,% 2 $ s,% 3 $ s). Первое взято из EditText, второе из Spinner (получает из массива), а третье - из EditText.Получение имени EditText переменной массива android
Я попытался использовать 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);
}
Согласно теперь единственное, что работает это случайная строка дисплея, но ни одна из переменных не работает.
последней строки бросить NullPointerException, верно? – yummy
Нет, NPE был брошен, когда я использовал String.format с сайта разработчиков Android. – user2606414
Сайт разработчиков Android. Эта строка 'res.getString (R.array.blabla, etastring, nomestring, cittastring);' is getString, но u r с использованием строкового массива – yummy