2014-10-26 3 views
1

У меня проблема с android spinner. Я пытаюсь получить spinner выпадающие значения из списка, который считывает его значения из файла. У меня есть 2 прядильщика. Когда выбрано первое значение счетчика, второй указатель отображает соответствующие значения. На данный момент я просто читаю значения spinner из списка, который я создал, но я хочу прочитать их из текстового файла.Android spinner получает значения из файла

public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 
    String foodCategory = String.valueOf(spFoodCategory.getSelectedItem()); 

    if(foodCategory.contentEquals("Milk products")) { 
     List<String> list = new ArrayList<String>(); 
      list.add("Joghurt R2.2% 100g - 76 kcal"); 
      list.add("Cheese R24% - 332 kcal"); 
      list.add("Milk 100ml - 56 kcal"); 
     ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, list); 
     dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     dataAdapter.notifyDataSetChanged(); 
     spFoodProduct.setAdapter(dataAdapter); 
    } 

    if(foodCategory.contentEquals("Meat and fish products")) { 
     List<String> list = new ArrayList<String>(); 
     list.add("Chicken 100g - 142 kcal"); 
     list.add("Minced meat R20% 100g - 246 kcal"); 
     list.add("Herring 100g - 235 kcal"); 
     list.add("Ham 100g - 130kcal"); 
     list.add("Egg 100g - 135 kcal"); 
     list.add("Bacon 100g - 301 kcal"); 

     ArrayAdapter<String> dataAdapter2 = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, list); 
     dataAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     dataAdapter2.notifyDataSetChanged(); 
     spFoodProduct.setAdapter(dataAdapter2); 
    } 
} 

ответ

0

Вы можете поместить файлы, которые вы хотите в папке assets затем читать их построчно и добавить в свои списки.

Вот как читать из активов

List<String> list = new ArrayList<String>(); 
InputStream txt = getAssets().open("file.txt"); 
BufferedReader in = new BufferedReader(new InputStreamReader(txt, "UTF-8")); 
String str; 

while ((str=in.readLine()) != null) { 
    list.add(str); 
} 

in.close(); 
+0

Да, я пытался что-то подобное, но это дает мне ошибку и предлагает использовать Try-Catch вокруг везде, поэтому, когда я положил все предложенные примерочных Задвижки и когда я пытаюсь запустить его на своем эмуляторе, он немедленно закрывает мое приложение, поэтому он не работает. – kristel

+0

Вы уверены, что это не было чем-то еще, что привело ваше приложение к немедленному закрытию? попробуйте следующее [это сообщение] (http://sunil-android.blogspot.com/2013/05/open-read-file-from-assets.html), чтобы прочитать файл из активов –

+0

Я исправился. Мне просто нужно было сделать это как другой метод, а не внутри моего существующего метода, потому что в другом методе я могу использовать «throws Exception», который я не мог использовать в моем существующем методе. Спасибо! :) – kristel

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