Reputation: 413
Hi guys hope u can help me, I have a custom ArrayAdapter
for my spinner, and I set the Adapter inside onPostExecute()
in an AsyncTask
. The problem is when I call the setOnItemSelectedListener()
it doesn't recognize the click event. My spinner is like a dialog, it works ok, the list of items is showed in popup spinner but the item selector doesnt work.. I guess it's because I miss the Context inside setOnItemSelectedListener()
but not sure about that.
Here is my code:
onPostExecute:
protected void onPostExecute(String result){
pDialog.dismiss();
spinAdmin.setAdapter(new MyAdapter(getApplication(), R.layout.opina_spinner_item_saf,safList));
spinAdmin.setOnItemSelectedListener(new OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parentView,
View view, int position, long id) {
Toast.makeText(getBaseContext(),"MyItem",
Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parentView) {
// TODO Auto-generated method stub
}
});
}
In the same Activity
my Adapter class:
public class MyAdapter extends ArrayAdapter<String>{
public MyAdapter(Context ctx, int txtViewResourceId, ArrayList<String> objects) {
super(ctx, txtViewResourceId, objects);
}
@Override
public View getDropDownView(int position, View cnvtView, ViewGroup prnt) {
return getCustomView(position, cnvtView, prnt);
}
@Override
public View getView(int position, View cnvtView, ViewGroup prnt) {
return getCustomView(position, cnvtView, prnt);
}
public View getCustomView(int position, View cnvtView, ViewGroup prnt) {
LayoutInflater inflater = getLayoutInflater();
View mySpinner = inflater.inflate(R.layout.opina_spinner_item_saf, prnt, false);
TextView main_text = (TextView) mySpinner .findViewById(R.id.txt_spinner_item_saf);
main_text.setText(safList.get(position));
return mySpinner;
}
}
Upvotes: 1
Views: 1048
Reputation: 6138
Try this:
spinAdmin.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
Upvotes: 1