내 GlobalClass extends
응용 프로그램 클래스가 있습니다. 전역 개체 데이터를 회 전자에 바인딩하고 싶습니다. 여기 내 GlobalClass
글로벌 개체에서 스피너로 데이터를 적용하는 방법
public class GlobalClass extends Application {
private List<ProjectType> projectTypes;
public List<ProjectType> getProjectTypes() {
return projectTypes;
}
public void setProjectTypes(List<ProjectType> projectTypes) {
this.projectTypes = projectTypes;
}
}
뽀조 클래스
public class ProjectType implements Serializable {
private Integer projectTypeId;
private String typeName;
private Integer peckOrder;
//getter and setter here
내가 발리를 사용하여 서버의 응답을 얻을 GSON
를 사용하여 분석하고 여기에 GlobalClass
코드에 대한 응답을 설정
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.GET, getString(R.string.TEST_projectTypeURL), null, new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
final GlobalClass globalVariable = (GlobalClass) getApplicationContext();
Gson gson = new Gson();
List<ProjectType> projectTypes = gson.fromJson(String.valueOf(response),List.class);
globalVariable.setProjectTypes(projectTypes);
}
}
그리고 마지막으로 내가 오류를 얻고있다 위의 코드를 시도하는 동안 GlobalClass 객체
globalVariable = (GlobalClass) getApplicationContext();
List<String> projectTypeList = new ArrayList<>();
ArrayList<ProjectType> projectTypesCollection = new ArrayList<ProjectType>(globalVariable.getProjectTypes());
for (ProjectType projectType: projectTypesCollection) {
projectTypeList.add(projectType.getTypeName());
}
prjtTypeSpinner = (Spinner)findViewById(R.id.spn_prjt_type);
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,projectTypeList);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
prjtTypeSpinner.setAdapter(dataAdapter);
에서 데이터를 바인딩하는 스피너를 사용하여 다른 활동 클래스 스피에서 "com.google.gson.internal.LinkedTreeMap는 캐스트 할 수없는 pojo.ProjectType 클래스 "여기
객체 반환 값,
[{projectTypeId=3.0, typeName=ALS, peckOrder=220.0}, {projectTypeId=2.0, typeName=ALB, peckOrder=210.0}, {projectTypeId=1.0, typeName=CL, peckOrder=200.0}, {projectTypeId=7.0, typeName=ACG, peckOrder=40.0}, {projectTypeId=6.0, typeName=ACS, peckOrder=30.0}, {projectTypeId=5.0, typeName=ACB, peckOrder=20.0}, {projectTypeId=4.0, typeName=CC, peckOrder=10.0}]
내가을 원하는 회 전자에. 미리 감사드립니다.
코드를 사용하는 동안 오류가있는 "java.lang.IllegalStateException : Expected BEGIN_ARRAY but BEGIN_OBJECT"오류가 발생합니다. – Narendhran