gpt4 book ai didi

java - 转到 TextView 时与旋转器相关的问题

转载 作者:行者123 更新时间:2023-12-02 10:04:23 25 4
gpt4 key购买 nike

我正在使用带有依赖微调器的代码,但遇到以下问题:

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

我附上图片

Sample image enter image description here

我使用此代码传递 Textview

ed_acu.setText(jornadaSpinner.getSelectedItem().toString());

但是我在我的 Textview“ed_acu”中收到此错误,而不是文本。

com.elgeos.tracker.spinnerCOL.State@a8f178

状态java

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;
}

}

状态适配器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;

}
}

我的MainActivity代码

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);

}

最佳答案

正如您在 StateAdapter 中看到的,您正在将微调器设置为显示 state.getStateName()。您在另一个 TextView 中看到的不是错误,而是直接传递给 setText()< 的 State 对象的默认 toString()/。请改用 jornadaSpinner.getSelectedItem().getStateName(),您应该会得到所需的结果。

关于java - 转到 TextView 时与旋转器相关的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55409462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com