Android - 使用Spinner的IF语句,而Textview是从JSON

时间:2016-11-02 17:32:27

标签: android if-statement spinner android-volley

尽管有以下代码教程,我找不到任何可用的代码来解决我的问题。

我想在用户在微调器中选择一个项目时使用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

1 个答案:

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

现在,当您设置此侦听器时,您可以使用spinnerAdapterspinnerData方法分别使用getItemget方法访问数据{{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()