2
웹 API에서 값을 가져 와서 어댑터로 업데이트하려고합니다. 나는 API에서 값을 가지고 그 또한 드롭 다운에 표시하지만, 그 선택된 값이 표시되지 아래로 내가 드롭에서 값을 선택할 때 여기 selected 안드로이드에서 드롭 다운의 값이 작동하지 않습니다.
내 코드입니다 : -public class ApplyLeave extends BaseActivity implements OnItemSelectedListener {
List<String>Leavetype=new ArrayList<String>();
String selState=null;// variable used for store the value of selected value in drop down
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xyz);
context=this;
getLeaveType();// method fetching the value from API and updating it in leaveType
final Spinner spinerLeavetype = (Spinner)findViewById(R.id.spLeavetype);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item,Leavetype);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinerLeavetype.setAdapter(adapter);
spinerLeavetype.setOnItemSelectedListener(this);
}
private void getLeaveType()
{
new Thread(new Runnable() {
@Override
public void run() {
LeaveTypeResponse jsonResponse=ServiceManager.CompanyLeaveType(context,app);
if(jsonResponse!=null){
if(jsonResponse.Response!=null){
for(Leave leaveTypeName:jsonResponse.Response)
{
Leavetype.add(leaveTypeName.Name);// here Leavetype is updating with value
}
}
}
else{
CommonTasks.ShowToast(getApplicationContext(),handler,getString(R.string.NETWORKCONNECTIONEXCEPTION_MESSAGE));
}
}
}).start();
}
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
selState= String.valueOf(adapterView.getSelectedItem());// selected value storing in selState variable .
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
}
드롭 동안 - 다운은
string[] Leavetype=new String[]{"Medical","Casual"};
과 같은 딱딱한 코드로 작업하고 있습니다. 내가 잘못하고있는 부분을 알려주십시오. 미리 감사드립니다.
감사처럼 websrvice에서 검색된 데이터 후 어댑터를 적용합니다. –
getLeaveType()이 백그라운드 스레드에서 실행 중이며 서버에서 데이터를 가져 오기 전에 어댑터와 수신기를 설정하기 때문에 확실합니다. –
ok .. 다시 한 번 감사드립니다. –