【问题标题】:Android spinner gets values from fileAndroid spinner 从文件中获取值
【发布时间】:2014-10-26 19:57:47
【问题描述】:

我在使用 android 微调器时遇到了问题。我正在尝试从从文件中读取其值的列表中获取微调器下拉值。 我有 2 个旋转器。 When first spinner value is selected then second spinner displays the corresponding values. 目前我只是从我制作的列表中读取微调器值,但我想从文本文件中读取它们。

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);
    }
}

【问题讨论】:

    标签: android list arraylist spinner text-files


    【解决方案1】:

    您可以将所需的文件放在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();
    

    【讨论】:

    • 是的,我尝试过类似的方法,但它给了我一个错误并建议在任何地方使用 Try-Catch,所以当我放置所有建议的 Try-Catch 并尝试在我的模拟器然后它立即关闭我的应用程序,所以它不起作用。
    • 您确定不是其他原因导致您的应用程序立即关闭吗?尝试关注this post 从资产中读取文件
    • 我把它修好了。我只需要将它作为另一种方法,而不是在我现有的方法中,因为在另一种方法中我可以使用我在现有方法中无法使用的“抛出异常”。谢谢! :)
    猜你喜欢
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多