Java AlertDialog未刷新数据 public void setFileName(字符串inMake,字符串inModel){ //设置微调器以获取年份 filename=filename.concat(inMake); filename=filename.concat(inModel); filename=filename.concat(“.txt”); 喷丝头3=(喷丝头)findViewById(R.id.spinner3); 缓冲读取器; AssetManager AssetManager=MainActivity.getContext().getAssets(); List testYears=new ArrayList(); 试一试{ InputStream istr=assetManager.open(文件名); reader=新的BufferedReader(新的InputStreamReader(istr)); 弦线; 而((line=reader.readLine())!=null){ testYears.add(行); } } 捕获(IOE异常){ Log.e(“message:,e.getMessage()); } AlertDialog.Builder yearDialog=新建生成器(此); yearDialog.setTitle(“选择年份”); 最终ArrayAdapter=新的ArrayAdapter(这是android.R.layout.select\u dialog\u singlechoice,testYears); adapter.notifyDataSetChanged(); yearDialog.setAdapter(适配器,新的DialogInterface.OnClickListener(){ @凌驾 public void onClick(DialogInterface dialog,int which){ dialog.dismise(); year=Integer.parseInt(adapter.getItem(which)); Toast.makeText(getApplicationContext(), 年:“+年,祝酒词。长短)。show(); } }); AlertDialog alert=yearDialog.create(); alert.show(); }

Java AlertDialog未刷新数据 public void setFileName(字符串inMake,字符串inModel){ //设置微调器以获取年份 filename=filename.concat(inMake); filename=filename.concat(inModel); filename=filename.concat(“.txt”); 喷丝头3=(喷丝头)findViewById(R.id.spinner3); 缓冲读取器; AssetManager AssetManager=MainActivity.getContext().getAssets(); List testYears=new ArrayList(); 试一试{ InputStream istr=assetManager.open(文件名); reader=新的BufferedReader(新的InputStreamReader(istr)); 弦线; 而((line=reader.readLine())!=null){ testYears.add(行); } } 捕获(IOE异常){ Log.e(“message:,e.getMessage()); } AlertDialog.Builder yearDialog=新建生成器(此); yearDialog.setTitle(“选择年份”); 最终ArrayAdapter=新的ArrayAdapter(这是android.R.layout.select\u dialog\u singlechoice,testYears); adapter.notifyDataSetChanged(); yearDialog.setAdapter(适配器,新的DialogInterface.OnClickListener(){ @凌驾 public void onClick(DialogInterface dialog,int which){ dialog.dismise(); year=Integer.parseInt(adapter.getItem(which)); Toast.makeText(getApplicationContext(), 年:“+年,祝酒词。长短)。show(); } }); AlertDialog alert=yearDialog.create(); alert.show(); },java,android,Java,Android,我正试图通过alertdialog检索用户选择。它用于arrayAdapter的数组基于从活动外部传递的函数(string inmake、string inmodel)的输入。这种方法似乎工作得很好——但只是第一次。如果我向该方法发送新的字符串信息,它不会在alertdialog中显示任何选项 任何帮助都将不胜感激。请在加载适配器后使用notifyDataSetChange()。@bhunubaba My bad,我在加载适配器后移动了notifyDataSetChanged(),结果是一样的。

我正试图通过alertdialog检索用户选择。它用于arrayAdapter的数组基于从活动外部传递的函数(string inmake、string inmodel)的输入。这种方法似乎工作得很好——但只是第一次。如果我向该方法发送新的字符串信息,它不会在alertdialog中显示任何选项


任何帮助都将不胜感激。

请在加载适配器后使用notifyDataSetChange()。@bhunubaba My bad,我在加载适配器后移动了notifyDataSetChanged(),结果是一样的。上传代码一的代码行,首先填充适配器,然后更新适配器。
public void setFileName(String inMake, String inModel) {
    //sets spinner to get year
    filename = filename.concat(inMake);
    filename = filename.concat(inModel);
    filename = filename.concat(".txt");

    spinner3 = (Spinner) findViewById(R.id.spinner3);

    BufferedReader reader;
    AssetManager assetManager = MainActivity.getContext().getAssets();
    List<String> testYears = new ArrayList<String>();
    try {
        InputStream istr = assetManager.open(filename);
        reader = new BufferedReader(new InputStreamReader(istr));
        String line;
        while((line = reader.readLine()) != null) {
            testYears.add(line);
        }
    }
    catch (IOException e){
        Log.e("message: ",e.getMessage());
    }

    AlertDialog.Builder yearDialog = new Builder(this);
    yearDialog.setTitle("Select Year");

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.select_dialog_singlechoice, testYears);

    adapter.notifyDataSetChanged();
    yearDialog.setAdapter(adapter, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
            year = Integer.parseInt(adapter.getItem(which));
            Toast.makeText(getApplicationContext(),
                    "Year : " + year, Toast.LENGTH_SHORT).show();
        }
    });
    AlertDialog alert = yearDialog.create();
    alert.show();
}