Android 安卓微调器setOnItemSelectedListener不跳偶
填充数据后未选择我的微调器,我尝试了堆栈溢出的一些修复,但没有一个有效 我给Spinner的完整代码请在这里找到问题,谢谢 下面的微调器代码在内部使用Asyntask onPost执行方法工作,但在寄存器活动中不工作Android 安卓微调器setOnItemSelectedListener不跳偶,android,Android,填充数据后未选择我的微调器,我尝试了堆栈溢出的一些修复,但没有一个有效 我给Spinner的完整代码请在这里找到问题,谢谢 下面的微调器代码在内部使用Asyntask onPost执行方法工作,但在寄存器活动中不工作 package com.tutorials.hp.Tiktokads; import android.content.Intent; import android.content.SharedPreferences; import android.support.v7.a
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);
}
package com.tutorials.hp.Tiktokads;
导入android.content.Intent;
导入android.content.SharedReferences;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.view;
导入android.widget.Adapter;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.ExpandableListView;
导入android.widget.Spinner;
导入com.android.volley.RequestQueue;
导入com.android.volley.Response;
导入com.android.volley.VolleyError;
导入com.android.volley.toolbox.JsonArrayRequest;
导入com.android.volley.toolbox.StringRequest;
导入com.android.volley.toolbox.volley;
导入com.tutorials.hp.Tiktokads.m_DataObject.*;
导入com.tutorials.hp.Tiktokads.m_DataObject.City;
导入com.tutorials.hp.Tiktokads.m_MySQL.spincitydata下载;
导入com.tutorials.hp.Tiktokads.m_MySQL.SpinDownloader;
导入com.tutorials.hp.Tiktokads.m_UI.AsyncResponse;
导入org.json.JSONArray;
导入org.json.JSONException;
导入org.json.JSONObject;
导入java.util.ArrayList;
公共类RegisterActivity扩展了AppCompatActivity{//实现了异步响应{
最终静态字符串urlAddress=“projects/birthdays/android/getAllDistrict”;
ArrayList ProvinceList=新的ArrayList();
ArrayList CityList=新的ArrayList();
私人纺纱机;
专用微调器sp1;
私有静态最终字符串TAG=“Naseemlog”;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u寄存器);
sp=(微调器)findViewById(R.id.sp);
sp1=(微调器)findViewById(R.id.sp1);
sp1.setEnabled(false);
getData();
//新的SpinDownloader(RegisterActivity.this,urlAddress,sp,sp1,RegisterActivity.this).execute();
//Log.i(TAG,String.valueOf(result));
ArrayAdapter=新的ArrayAdapter(RegisterActivity.this,android.R.layout.simple\u spinner\u dropdown\u item,ProvinceList);
sp.setAdapter(适配器);
sp.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
Log.i(标签“sdasd”);
//Toast.makeText(c,provides.get(position),Toast.LENGTH_SHORT.show();
省=(省)父级。getSelectedItem();
//Toast.makeText(c,“省ID:+Province.getId()+”,省名称:“+Province.getName(),Toast.LENGTH_SHORT).show();
//消息消息=新消息();
//Bundle=新Bundle();
//bundle.putString(“District”,provider.getId());
//message.setData(bundle);
//handler.sendMessage(message);//从活动传递处理程序对象
字符串district=province.getId();
字符串urlAddress1=“projects/birthdays/android/getAllCityByDistrict/”+province.getId();
Log.i(标签,URL地址1);
//新的SpinCityDataDownload(c、urlAddress1、sp、sp1、mCallback);
getCityData(URL地址1);
//sp1.setEnabled(true);
////绑定
//ArrayAdapter adapter1=新的ArrayAdapter(RegisterActivity.this,android.R.layout.simple\u spinner\u dropdown\u item,CityList);
//设置适配器(适配器1);
//
//setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
//@覆盖
//已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
////Toast.makeText(c,provides.get(position),Toast.LENGTH_SHORT.show();
//城市=(城市)父级。getSelectedItem();
////Toast.makeText(c,“城市ID:+city.getId()+”,城市名称:“+city.getName(),Toast.LENGTH_SHORT).show();
////意向意向=新意向(“位置选择”);
////intent.putExtra(“city”,city.getId());
////c.发送广播(意图);
//
//字符串cityId=city.getId();
//
// }
//
//@覆盖
//未选择公共无效(AdapterView父级){
//
// }
// });
}
@凌驾
未选择公共无效(AdapterView父级){
}
});
}
私有void getData(){
//实例化RequestQueue。
RequestQueue=Volley.newRequestQueue(this);
//从提供的URL请求字符串响应。
JsonArrayRequest req=新的JsonArrayRequest(URL地址,
新的Response.Listener(){
@凌驾
公共void onResponse(JSONArray响应){
试一试{
对于(int i=0;iArrayAdapter adapter=new ArrayAdapter(RegisterActivity.this,R.layout.custom_drop_down_item,ProvinceList);
sp.setAdapter(adapter);
sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
ArrayList<String> list = new ArrayList<>();
list.add("one");
list.add("two");
CustomDropDownAdapter adapter = new CustomDropDownAdapter(this, list);
spinner.setAdapter(adapter);
adapter.setOnCustomItemSelectedListener(new CustomDropDownAdapter.OnCustomItemSelectedListener() {
@Override
public void onItemSelected(int position, String selectedValue) {
// this will hit if any item will be select
}
});
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.kpsoft.xlez.reform.R;
import java.util.ArrayList;
public class CustomDropDownAdapter extends BaseAdapter {
private ArrayList<String> mList;
private Activity mContext;
private OnCustomItemSelectedListener mListener;
public CustomDropDownAdapter(Activity context, ArrayList<String> list){
this.mContext = context;
this.mList = list;
}
public void setOnCustomItemSelectedListener(OnCustomItemSelectedListener listener){
this.mListener = listener;
}
@Override
public int getCount() {
return mList == null ? 0 : mList.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = mContext.getLayoutInflater();
final ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.item_drop_down, parent, false);
// well set up the ViewHolder
viewHolder.mTextView = (TextView) convertView.findViewById(R.id.tv);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.mTextView.setText(mList.get(position));
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(mListener != null){
mListener.onItemSelected(position, viewHolder.mTextView.getText().toString());
}
}
});
return convertView;
}
private static class ViewHolder {
TextView mTextView;
}
public interface OnCustomItemSelectedListener{
void onItemSelected(int position, String selectedValue);
}
}
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:textSize="18sp"
android:textColor="#000000"/>