2016-01-06 2 views
-2

в моем андроиде я иметь TextView остроумие автозаполнения функция, как это:андроид заполнить массив строк динамической

String [] COUNTRIES = new String[] { 
    "Belgium", "France", "Italy", "Germany", "Spain" 
}; 

final AutoCompleteTextView editTextCountries = (AutoCompleteTextView) findViewById(R.id.editTextCountries); 

ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, COUNTRIES); 
editTextCountries.setAdapter(adapter); 

это работает отлично.

Теперь я хотел бы динамически устанавливать страны. одна деятельности, прежде чем я дать страны с намерением и получить эти страны в классе с TextView, как это:.

String[] COUNTRIES = new String[] { 
     getIntent().getExtras().getString("countries") 
}; 

Log.e из getIntent() getExtras() GetString («страна»).:

"Belgium", "France", "Italy", "Germany", "Spain"

То же самое, как:

String [] COUNTRIES = new String[] { 
    "Belgium", "France", "Italy", "Germany", "Spain" 
}; 

но автозаполнение не работает, как это. любые идеи?

+1

Вы получаете getIntent(). GetExtras(). GetString() ', это всего лишь ** одна строка ** и поэтому вы создаете массив только с одним элементом –

+0

mmmmh, хорошо, как я могу заполнить массив своей строкой намерения, сделать несколько элементов? – SpecialFighter

+0

@SpecialFighter почему ваши строки сгруппированы для начала? – njzk2

ответ

4

В ActivityA:

Intent intent = new Intent(this, ActivityB); 
String[] COUNTRIES = new String[] { 
    "Belgium", "France", "Italy", "Germany", "Spain" 
}; 

intent.putExtra("countries", COUNTRIES); 
startActivity(intent); 

В ActivityB:

public void onCreate() { 
    Intent intent = getIntent(); 
    String[] countries = intent.getStringArrayExtra("COUNTRIES"); 
} 

ИЛИ

В ActivityA:

String countries = "Belgium,France,Italy,Germany,Spain"; 

Intent intent = new Intent(this, ActivityB); 

intent.putExtra("countries", countries); 
startActivity(intent); 

В деятельности Б :

public void onCreate() { 
    Intent intent = getIntent(); 
    String[] countries = intent.getExtras().getString("countries").split(","); 
} 
+0

COUNTRIES = new String [] {getIntent(). GetStringArrayExtra ("СТРАНЫ")}; чем я получаю сообщение об ошибке: Required String, Found String [] – SpecialFighter

+0

Скопируйте этот код так, как есть. Он отлично работает для меня. –

+0

Если проблема решена, примите, пожалуйста, правильный ответ –

0

простейшие и наиболее релевантный ответ на подход, указанном в вашем вопросе будет:

Установите строку значение: (запятые)

Belgium|France|Italy|Germany|Spain 

и получить значения в вашей строке с использованием разделения:

String[] countries = getIntent().getExtras().getString("countries").split("|");