2015-04-09 3 views
0

Я разрабатываю приложение, которое произвольно выбирает строку из файла 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); 
} 

Согласно теперь единственное, что работает это случайная строка дисплея, но ни одна из переменных не работает.

+0

последней строки бросить NullPointerException, верно? – yummy

+0

Нет, NPE был брошен, когда я использовал String.format с сайта разработчиков Android. – user2606414

+0

Сайт разработчиков Android. Эта строка 'res.getString (R.array.blabla, etastring, nomestring, cittastring);' is getString, но u r с использованием строкового массива – yummy

ответ

1

Попробуйте сделать это таким образом

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

Ваш код дает проблемы, потому что вы пытаетесь прочитать строку из массива, используя getString() вместо getStringArray()

+0

Yeeeeep! Спасибо! Он отлично работает! – user2606414

Смежные вопросы