Sarah
Sarah

Reputation: 98

Why didn't my toast work?

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.item_listview);

    myspinner = (Spinner)findViewById(R.id.spinnertype);
    String provider = myspinner.getSelectedItem().toString();

    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, type_arrays,R.layout.support_simple_spinner_dropdown_item);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    myspinner.setAdapter(adapter);

    myspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
            Toast.makeText(parent.getContext(), "OnItemSelectedListener :" + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_SHORT).show();
        }

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

}
 }

i tried different kinds of toast but still it wont appear. what went wrong? I viewed some posts and it says i cant use onclicklistener to a spinner

Upvotes: 3

Views: 121

Answers (3)

ʍѳђઽ૯ท
ʍѳђઽ૯ท

Reputation: 16976

Ok, Let's check the codes again ;

Like i said, You'll need to use the current Activity Context.

For example, My Activity name is, MainActivity so, Use: MainActivity.this This should be the context of that Activity.But i think if you use your own code(parent.getContext()) inside the another activity, It won't show up because it's somewhere else actually you know

Also, You did something wrong here i guess (Something similiar : ArrayAdapter.createFromResource issue)

I just quote the answer:

Query the data, put it in a List or Array and use this constructor of ArrayAdapter:

ArrayAdapter<CharSequence> dataAdapter1 =  new ArrayAdapter(this, 
                                    android.R.layout.simple_spinner_item, yourArrayOrList);

Update: So here it is:

Spinner myspinner = (Spinner)findViewById(R.id.spinnertype);
        String provider = myspinner.getSelectedItem().toString();

        ArrayAdapter<CharSequence> adapter =
                new ArrayAdapter<CharSequence>(this, type_arrays, R.layout.support_simple_spinner_dropdown_item);
                /*ArrayAdapter.createFromResource(this, type_arrays,R.layout.support_simple_spinner_dropdown_item);*/

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        myspinner.setAdapter(adapter);

        myspinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                Toast.makeText(MainActivity.this, "OnItemSelectedListener :" + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_SHORT).show();

            }

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

            }
        });

Now it should work!

Upvotes: 1

Ashish Gupta
Ashish Gupta

Reputation: 747

Try using getContext() instead of getApplicationContext.

Upvotes: 2

Horrorgoogle
Horrorgoogle

Reputation: 7868

Have yout try this, that might help you

Toast.makeText(getApplicationContext(), "OnItemSelectedListener :" + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_SHORT).show();

or

Toast.makeText(YourActivity.this, "OnItemSelectedListener :" + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_SHORT).show();

Upvotes: 3

Related Questions