My Spinner Not Selected after populated data, i tried some fixes from stack overflow but non of them works.
my Complete code to Spinner please find the issue any found in here thanks.............
the spinner code below worked inside with Asyntask onPost excute method but in the Register Activity not works.
package com.tutorials.hp.Tiktokads;
import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Adapter;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ExpandableListView;
import android.widget.Spinner;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.tutorials.hp.Tiktokads.m_DataObject.*;
import com.tutorials.hp.Tiktokads.m_DataObject.City;
import com.tutorials.hp.Tiktokads.m_MySQL.SpinCityDataDownload;
import com.tutorials.hp.Tiktokads.m_MySQL.SpinDownloader;
import com.tutorials.hp.Tiktokads.m_UI.AsyncResponse;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.ArrayList;
public class RegisterActivity extends AppCompatActivity { //implements AsyncResponse{
final static String urlAddress="projects/birthdays/android/getAllDistrict";
ArrayList<Province> ProvinceList = new ArrayList<>();
ArrayList<City> CityList = new ArrayList<>();
private Spinner sp;
private Spinner sp1;
private static final String TAG = "Naseemlog";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
sp= (Spinner) findViewById(R.id.sp);
sp1= (Spinner) findViewById(R.id.sp1);
sp1.setEnabled(false);
getData();
// new SpinDownloader(RegisterActivity.this,urlAddress,sp,sp1,RegisterActivity.this).execute();
//Log.i(TAG, String.valueOf(result));
ArrayAdapter adapter=new ArrayAdapter(RegisterActivity.this,android.R.layout.simple_spinner_dropdown_item,ProvinceList);
sp.setAdapter(adapter);
sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
Log.i(TAG, "sdasd");
//Toast.makeText(c,Provinces.get(position),Toast.LENGTH_SHORT).show();
Province province = (Province) parent.getSelectedItem();
//Toast.makeText(c, "Province ID: "+province.getId()+", Province Name : "+province.getName(), Toast.LENGTH_SHORT).show();
// Message message = new Message();
// Bundle bundle = new Bundle();
// bundle.putString("District", province.getId());
// message.setData(bundle);
// handler.sendMessage(message); // pass handler object from activity
String district=province.getId();
String urlAddress1="projects/birthdays/android/getAllCityByDistrict/"+province.getId();
Log.i(TAG, urlAddress1);
//new SpinCityDataDownload(c,urlAddress1,sp,sp1,mCallback).execute();
getCityData(urlAddress1);
// sp1.setEnabled(true);
// //BIND
// ArrayAdapter adapter1=new ArrayAdapter(RegisterActivity.this,android.R.layout.simple_spinner_dropdown_item,CityList);
// sp1.setAdapter(adapter1);
//
// sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
// @Override
// public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// //Toast.makeText(c,Provinces.get(position),Toast.LENGTH_SHORT).show();
// City city = (City) parent.getSelectedItem();
// //Toast.makeText(c, "city ID: "+city.getId()+", city Name : "+city.getName(), Toast.LENGTH_SHORT).show();
//// Intent intent = new Intent("locationSelection");
//// intent.putExtra("city",city.getId());
//// c.sendBroadcast(intent);
//
// String cityId=city.getId();
//
// }
//
// @Override
// public void onNothingSelected(AdapterView<?> parent) {
//
// }
// });
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
private void getData(){
// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
// Request a string response from the provided URL.
JsonArrayRequest req = new JsonArrayRequest(urlAddress,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
for (int i = 0; i < response.length(); i++) {
JSONObject result = (JSONObject) response
.get(i);
int id = result.getInt("id");
String name = result.getString("pro_name");
ProvinceList.add(new Province(String.valueOf(id), name));
}
} catch (JSONException e) {
e.printStackTrace();
}
//Log.i(TAG, String.valueOf(response));
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i(TAG, "Volley Error");
}
});
// Add the request to the RequestQueue.
queue.add(req);
}
private void getCityData(String urlAddress1){
// Instantiate the RequestQueue.
RequestQueue queue = Volley.newRequestQueue(this);
// Request a string response from the provided URL.
JsonArrayRequest req = new JsonArrayRequest(urlAddress1,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
try {
for (int i = 0; i < response.length(); i++) {
JSONObject result = (JSONObject) response
.get(i);
int id = result.getInt("id");
String name = result.getString("city_name");
CityList.add(new City(String.valueOf(id), name));
}
} catch (JSONException e) {
e.printStackTrace();
}
//Log.i(TAG, String.valueOf(response));
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i(TAG, "Volley Error");
}
});
// Add the request to the RequestQueue.
queue.add(req);
}