尽管有以下代码教程,我找不到任何可用的代码来解决我的问题。
我想在用户在微调器中选择一个项目时使用toast,然后得到this json link
我的代码:
private void requestJsonObject(){
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest stringRequest = new StringRequest(Request.Method.GET, PATH_TO_SERVER, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
GsonBuilder builder = new GsonBuilder();
Gson mGson = builder.create();
spinnerData = Arrays.asList(mGson.fromJson(response, DataObject[].class));
//display first question to the user
spinner = (Spinner) findViewById(R.id.spinner);
assert spinner != null;
spinner.setVisibility(View.VISIBLE);
SpinnerAdapter spinnerAdapter = new SpinnerAdapter(MainActivity.this, spinnerData);
spinner.setAdapter(spinnerAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String Text = parent.getSelectedItem().toString();
if(Text.equals("ardi halim")){
Toast.makeText(MainActivity.this,"Testing", Toast.LENGTH_LONG).show();
}
else if(Text.equals("indah")){
Toast.makeText(MainActivity.this,"Testing Indah", Toast.LENGTH_LONG).show();
}
}
当我点击 ardi halim 时,为什么我的吐司没有显示在屏幕上?
我的代码出了什么问题?
感谢被建议编辑的@mmmartinnn
答案 0 :(得分:0)
基本上,如果if语句不起作用,那么String Text = parent.getSelectedItem().toString();
就不是你所期望的,你应该Log
- 那个值来看它实际是什么。
这是获取您在微调器上选择的数据的另一种方法。
声明适配器&amp;听众外面排球请求。
private SpinnerAdapter spinnerAdapter;
private Spinner spinner;
private List<DataObject> spinnerData = new ArrayList<DataObject>();
private static final GsonBuilder GSON_BUILDER = new GsonBuilder();
private final Gson mGson = GSON_BUILDER.create();
public void onCreate(Bundle b) {
...
//display first question to the user
spinner = (Spinner) findViewById(R.id.spinner);
assert spinner != null;
spinner.setVisibility(View.VISIBLE);
spinnerAdapter = new SpinnerAdapter(MainActivity.this, spinnerData);
spinner.setAdapter(spinnerAdapter);
现在,当您设置此侦听器时,您可以使用spinnerAdapter
或spinnerData
方法分别使用getItem
或get
方法访问数据{{1获取所选数据。
int position
此外,不要忘记在某个时候致电 spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// For example
DataObject selected = spinnerData.get(position);
String namaDosen = selected.getNama_dosen();
if(namaDosen.equals("ardi halim")){
Toast.makeText(MainActivity.this,"Testing", Toast.LENGTH_LONG).show();
}
}
});
}
。
而且,您只需更新微调器数据&amp;在volley请求中的适配器,而不是重新创建适配器并为每个齐射请求设置侦听器。
requestJsonObject()