2017-01-08 1 views
0

android studio에서 자동 완성 텍스트보기를 만들려고합니다. 나는 Visual Studio에서 웹 API를 만들어 나는이 같은 도시의 이름으로 JSON 배열을 반환하고 있습니다 :json 배열을 json 객체로 변환합니다.

["Sarajevo","Mostar","Tuzla","Banja Luka","Zagreb","Split","Beograd"] 

안드로이드 스튜디오에서 내가보기 모델 클래스를 만들었습니다. GradoviApi 클래스에서

public class GradoviVM{ 

public List<String> Naziv; 

public List<String> Get() 
{ 
    return Naziv; 
} 
} 

나는 웹 API를

public class GradoviApi { 

public static void GetGradovi (final Context context, final MyRunnable<GradoviVM> onSuccess) 
{ 
    String url = Config.url + "/api/gradovi"; 

    MyVolley.get(url, GradoviVM.class, new Response.Listener<GradoviVM>() { 
     @Override 
     public void onResponse(GradoviVM response) { 
      onSuccess.run(response); 
     } 
    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Toast.makeText(MyApp.getContext(), "Greška u komunikaciji sa serverom: " + error.getMessage(), Toast.LENGTH_LONG).show(); 
     } 
    }); 
} 
} 

를 통신 기능의 구현을 가지고 그리고 이것은 자동 완성 텍스트보기가

public class PretragaActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_pretraga); 

    GradoviApi.GetGradovi(this, new MyRunnable<GradoviVM>() { 
     @Override 
     public void run(GradoviVM result) { 

     } 

    }); 
    GradoviVM gradovi = new GradoviVM(); 
    List<String> nazivi = gradovi.Get(); 
    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, nazivi); 
    AutoCompleteTextView actv = (AutoCompleteTextView) findViewById(R.id.mjestoPolaskaACTV); 
    actv.setAdapter(adapter); 
} 
}; 

오류는 말한다입니다 활동의 코드입니다 예상되는 유형은 Begin 객체이지만 Begin 배열입니다.

답변

0

귀하의 모델 클래스는 매핑되는 json에 Naziv 속성이 있다고 가정합니다. 다음과 같이 코드를 업데이트 할 수 있어야합니다.

MyVolley.get(url, GradoviVM.class, new Response.Listener<ArrayList<String>>() 
관련 문제