Стараюсь писать под андроид. Терзает меня одна проблема.
В яве я полный ноль, а тема сложная, гугл не помог, я не могу вкурить, надо "на пальцах".
В кратце, есть код:
TextView tv1 = (TextView) findViewById(R.id.tv1);
TextView tv2 = (TextView) findViewById(R.id.tv2);
TextView tv3 = (TextView) findViewById(R.id.tv3);
//....
TextView tvN = (TextView) findViewById(R.id.tvN);
далее сам проблема, нужно сделать чтото вроде:
for (int i = 1; i <= N; i++)
{
tv{some_keys_array[i]}.setText(some_values_array[i]);
}
-------
tv{some_keys_array[i]} - как????
подскажите кто знает, или альтернативный вариант с созданием tvX на лету, или еще както.
или какойто аналог php eval, любые костыли
================
отакэ проканало вроде:
Map<String, TextView> Map_TextView = new HashMap<String, TextView>();
Map_TextView.put("tv1", (TextView) findViewById(R.id.tv1));
Map_TextView.put("tv2", (TextView) findViewById(R.id.tv2));
Map_TextView.put("tv3", (TextView) findViewById(R.id.tv3));
Map_TextView.put("tv4", (TextView) findViewById(R.id.tv4));
Map_TextView.put("tv5", (TextView) findViewById(R.id.tv5));
String input_string = "tv1.tv.text1/tv2.tv.text3/tv3.tv.text5/tv4.tv.text7/tv5.tv.text9";
String[] input_parsed = input_string.split("\\/");
for(int i = 0; i < input_parsed.length; i++)
{
String[] input_parsed_final = input_parsed[i].split("\\.");
if(input_parsed_final[1].equals("tv"))
{
Map_TextView.get(input_parsed_final[0]).setText(input_parsed_final[2]);
}
}
может элегантнее както можно?