Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 转到textview时与微调器相关的问题_Java_Android_Android Spinner - Fatal编程技术网

Java 转到textview时与微调器相关的问题

Java 转到textview时与微调器相关的问题,java,android,android-spinner,Java,Android,Android Spinner,我正在使用带有从属微调器的代码,但存在以下问题: 微调器正确地从JSON文件加载,但当我尝试将第一个微调器的结果传递给textview时,它不会显示微调器的文本,而是显示以下内容: 我附上图片 我使用此代码传递文本视图 ed_acu.setText(jornadaSpinner.getSelectedItem().toString()); 但是我在我的文本视图“ed_acu”中得到了这个错误,而不是文本 com.elgeos.tracker.spinnerCOL.State@a8f178

我正在使用带有从属微调器的代码,但存在以下问题:

微调器正确地从JSON文件加载,但当我尝试将第一个微调器的结果传递给textview时,它不会显示微调器的文本,而是显示以下内容:

我附上图片

我使用此代码传递文本视图

ed_acu.setText(jornadaSpinner.getSelectedItem().toString());
但是我在我的文本视图“ed_acu”中得到了这个错误,而不是文本

com.elgeos.tracker.spinnerCOL.State@a8f178
爪哇州

public class State {
    private String stateName;
    private List<String> cities;


    public State(String stateName, List<String> cities) {
        this.stateName = stateName;
        this.cities = cities;
    }

    public String getStateName() {
        return stateName;
    }

    public List<String> getCities() {
        return cities;
    }

}
公共类状态{
私有字符串stateName;
私人名单城市;
公共州(字符串stateName,列出城市){
this.stateName=stateName;
这个。城市=城市;
}
公共字符串getStateName(){
返回stateName;
}
公共列表(城市){
回归城市;
}
}
StateAdapter java

public class StateAdapter extends ArrayAdapter<State> {
    private List<State> stateList = new ArrayList<>();

    public StateAdapter(@NonNull Context context, int resource, int spinnerText, @NonNull List<State> stateList) {
        super(context, resource, spinnerText, stateList);
        this.stateList = stateList;
    }

    @Override
    public State getItem(int position) {
        return stateList.get(position);
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        return initView(position);

    }

    @Override
    public View getDropDownView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        return initView(position);
    }

    /**
     * Gets the state object by calling getItem and
     * Sets the state name to the drop-down TextView.
     *
     * @param position the position of the item selected
     * @return returns the updated View
     */
    private View initView(int position) {
        State state = getItem(position);
        LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View v = inflater.inflate(R.layout.jornada_list, null);
        TextView textView =  v.findViewById(R.id.spinnerText);
        textView.setText(state.getStateName() );
        return v;

    }
}
公共类StateAdapter扩展了ArrayAdapter{
private List stateList=new ArrayList();
公共StateAdapter(@NonNull上下文上下文、int资源、int spinnerText、@NonNull列表stateList){
超级(上下文、资源、喷丝器文本、状态列表);
this.stateList=状态列表;
}
@凌驾
公共状态getItem(int位置){
返回stateList.get(位置);
}
@非空
@凌驾
公共视图getView(int位置,@Nullable视图convertView,@NonNull视图组父级){
返回初始视图(位置);
}
@凌驾
公共视图getDropDownView(int位置,@Nullable视图convertView,@NonNull视图组父级){
返回初始视图(位置);
}
/**
*通过调用getItem和获取状态对象
*将状态名称设置为下拉文本视图。
*
*@param position选定项目的位置
*@return返回更新后的视图
*/
私有视图initView(内部位置){
状态=获取项目(位置);
LayoutInflater充气器=(LayoutInflater)getContext().getSystemService(Context.LAYOUT\u充气器\u SERVICE);
视图v=充气机充气(R.layout.jornada_列表,空);
TextView TextView=v.findViewById(R.id.spinnerText);
textView.setText(state.getStateName());
返回v;
}
}
我的主要活动代码

private void loadStateCityDetails() {
        final List<State> statesList = new ArrayList<>();
        final List<String> states = new ArrayList<>();
        JsonArrayRequest jsArrayRequest = new JsonArrayRequest
                (Request.Method.GET, cities_url, (String) null, new Response.Listener<JSONArray>() {
                    @Override
                    public void onResponse(JSONArray responseArray) {
                        pDialog.dismiss();
                        try {
                            //Parse the JSON response array by iterating over it
                            for (int i = 0; i < responseArray.length(); i++) {
                                JSONObject response = responseArray.getJSONObject(i);
                                String state = response.getString(KEY_STATE);
                                JSONArray cities = response.getJSONArray(KEY_CITIES);
                                List<String> citiesList = new ArrayList<>();
                                for (int j = 0; j < cities.length(); j++) {
                                    citiesList.add(cities.getString(j));
                                }
                                statesList.add(new State(state, citiesList));
                                states.add(state);

                            }
                            final StateAdapter stateAdapter = new StateAdapter(activity_make_user.this,
                                    R.layout.jornada_list, R.id.spinnerText, statesList);
                            jornadaSpinner.setAdapter(stateAdapter);

                            jornadaSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                                @Override
                                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                                    //Populate City list to the second spinner when
                                    // a state is chosen from the first spinner
                                    State cityDetails = stateAdapter.getItem(position);
                                    List<String> cityList = cityDetails.getCities();
                                    ArrayAdapter citiesAdapter = new ArrayAdapter<>(activity_make_user.this,
                                            R.layout.colegio_list, R.id.citySpinnerText, cityList);
                                    colegioSpinner.setAdapter(citiesAdapter);
                                }

                                @Override
                                public void onNothingSelected(AdapterView<?> parent) {

                                }
                            });

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                }, new Response.ErrorListener() {

                    @Override
                    public void onErrorResponse(VolleyError error) {
                        pDialog.dismiss();

                        //Display error message whenever an error occurs
                        Toast.makeText(getApplicationContext(),
                                error.getMessage(), Toast.LENGTH_SHORT).show();

                    }
                });

        // Access the RequestQueue through your singleton class.
        MySingleton.getInstance(this).addToRequestQueue(jsArrayRequest);

    }
private void loadStateCityDetails(){
最终列表状态列表=新的ArrayList();
最终列表状态=新的ArrayList();
JsonArrayRequest jsArrayRequest=新JsonArrayRequest
(Request.Method.GET,cities\u url,(String)null,new Response.Listener(){
@凌驾
公共void onResponse(JSONArray responseArray){
pDialog.disclose();
试一试{
//通过迭代来解析JSON响应数组
对于(int i=0;i
正如您在
StateAdapter
中看到的,您正在将微调器设置为显示
state.getStateName()
。在另一个文本视图中看到的不是错误,而是直接传递给
setText()
State
对象的默认
toString()
。使用
jornadaspiner.getSelectedItem().getState
if(!TextUtils.isEmpty(jornadaSpinner.getSelectedItem().getState()))
    ed_acu.setText(jornadaSpinner.getSelectedItem().getState());
public class State {
    private String stateName;
    private List<String> cities;


    public State(String stateName, List<String> cities) {
        this.stateName = stateName;
        this.cities = cities;
    }

    public String getStateName() {
        return stateName;
    }

    public List<String> getCities() {
        return cities;
    }

    @Override
    String toString(){
     return stateName;
    }

}