Android 带JSON的AutoCompleteTextView

Android 带JSON的AutoCompleteTextView,android,autocompletetextview,Android,Autocompletetextview,我正在尝试将AutoCompleteTextView与Json结合使用,我正在使用本教程: 当我尝试向列表中添加数据时遇到了问题:foreach不适用于类型“com.example.program.model.Result”。下面是AutoCompleteTextView的模型数据和代码,我添加了示例模型的代码 private void DownloadGames() { final AlertDialog alertDialog = new SpotsDialog.Builder(

我正在尝试将AutoCompleteTextView与Json结合使用,我正在使用本教程:

当我尝试向列表中添加数据时遇到了问题:foreach不适用于类型“com.example.program.model.Result”。下面是AutoCompleteTextView的模型数据和代码,我添加了示例模型的代码

 private void DownloadGames() {

    final AlertDialog alertDialog = new SpotsDialog.Builder()
            .setContext(MainActivity.this)
            .setTheme(R.style.CustomDialog)
            .build();
    alertDialog.setMessage("Loading Data... Please wait...");
    alertDialog.setCancelable(true);
    alertDialog.show();

    Retrofit retrofit = GamesClient.getRetrofitClient();

    GamesInterface gamesInterface = retrofit.create(GamesInterface.class);

    Call call = gamesInterface.getGamesbyName(gameTitle.getText().toString(), SPINNER_POSITION);

    call.enqueue(new Callback() {
        @Override
        public void onResponse(Call call, Response response) {

            if (response.isSuccessful()) {
                alertDialog.dismiss();

                if (response.body() != null) {

                    Example example = (Example) response.body();

                   List<String> strings= new ArrayList<String>();

                    for(Result result: ((Example) response.body()).getResult()){
                        strings.add(result.getTitle());
                    }
                    ArrayAdapter<String> adapteo = new ArrayAdapter<String>(getBaseContext(),
                            android.R.layout.simple_dropdown_item_1line, strings.toArray(new String[0]));
                    storeTV.setAdapter(adapteo);


                    contentTitle.setText(example.getResult().getReleaseDate());

                  ...
}

您需要对象列表,但在示例类中观察单个对象。如果您的API抛出结果列表,则使用

public class Example {

     @SerializedName("result")
      @Expose
      private List<Result> result;

      public List<Result> getResult() {
        return result;
      } 

      public void setResult(List<Result> result) {
        this.result = result;
      }

     }


您需要对象列表,但在示例类中观察单个对象。如果您的API抛出结果列表,则使用

public class Example {

     @SerializedName("result")
      @Expose
      private List<Result> result;

      public List<Result> getResult() {
        return result;
      } 

      public void setResult(List<Result> result) {
        this.result = result;
      }

     }


((示例)response.body()).getResult())它应该是结果列表,检查这个我认为你在这里犯了错误。你能发布第一块代码的完整代码吗?从哪里得到
结果
?我更新了第一个块的代码。我必须补充一点,没有AutoCompleteTextView,一切都可以正常工作。我只想添加自动建议。如果结果不再有问题,您应该更新您的问题,而不是列表((示例)response.body()).getResult())它应该是结果列表,选中此项我认为您在此处出错。您可以发布第一段代码的完整代码吗?从哪里得到
结果
?我更新了第一个块的代码。我必须补充一点,没有AutoCompleteTextView,一切都可以正常工作。我只想添加自动建议。如果结果不是列表,您应该更新您的问题
for(Result result: ((Example) response.body()).getResult()){
                        strings.add(result.getTitle());
                    }
 for(Result result: example.getResult()){
                        strings.add(result.getTitle());
                    }