Android : Comment faire pour obtenir l'Id de l'élément sélectionné de Spinner

Dans mon cas, je veux obtenir l'Id de l'élément sélectionné de Spinner. J'ai deux champs dans ma classe modale qui ont un id et un nom. Je suis liste de toutes les données et je suis paramètre à cette liste à la carte. J'ai essayé d'obtenir le selectedItem Id à l'aide de la getSelectedItem() la méthode. Mais je ne peux faire le premier id de la liste de l'article.

C'est mon code.

public class ModifyEventFragment extends DialogFragment{
Context context;
CalEvent eve;
Project proj;
Spinner eventType,stage;
public static String eid,pid,type;
public static List<EventType> event_type;
public static List<ProjectStatus> cust_stage;
EditText where,when,who,notes;
String eve_type,stage_val,when_val,who_val,notes_val;
String modified_where,modified_who,modified_when,modified_notes;
public ModifyEventFragment(Project proj)
{
this.proj=proj;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.modify_project_event, container,
false);
context = rootView.getContext();
eventType = (Spinner) rootView.findViewById(R.id.modifyEventType);
stage =(Spinner) rootView.findViewById(R.id.modifyStage);
where = (EditText)rootView.findViewById(R.id.modifyWhere);
who = (EditText)rootView.findViewById(R.id.modifyWho);
when = (EditText)rootView.findViewById(R.id.modifyWhen);
notes =(EditText) rootView.findViewById(R.id.modifyNotes);
eve = CalEvent.getCalEvent(ProjectEventFragment.calevent.eve_id);
event_type = EventType.listAll();
CustomEventTypeAdapter adapter = new CustomEventTypeAdapter(context, event_type);
eventType.setAdapter(adapter);
type=((EventType)eventType.getSelectedItem()).et_id;
cust_stage = ProjectStatus.listAll();
CustomStatusAdapter adapter1 = new CustomStatusAdapter(context, cust_stage);
stage.setAdapter(adapter1);
where.setText(eve.followup_location.toString());
where.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
//TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
//TODO Auto-generated method stub
modified_where = s.toString();
}
});
who.setText(eve.person_met.toString());
who.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
//TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
//TODO Auto-generated method stub
modified_who = s.toString();
}
});
when.setText(eve.event_start.toString());
when.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
//TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
//TODO Auto-generated method stub
modified_when = s.toString();
}
});
notes.setText(eve.notes.toString());
notes.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
//TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
//TODO Auto-generated method stub
modified_notes = s.toString();
}
});
Button save = (Button) rootView.findViewById(R.id.modifyeventsave);
save.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//TODO Auto-generated method stub
eve.followup_location = modified_where;
eve.event_start = modified_when;
eve.person_met = modified_who;
eve.notes = modified_notes;
System.out.println("print type"+type);
eve.save();
ProjectEventFragment.adapter.notifyDataSetChanged();
}
});
return rootView;
}

C'est CustomEventType code d'adaptateur.

public class CustomEventTypeAdapter extends BaseAdapter{
Context ctx;
List<EventType> ps;
LayoutInflater inflater;
public CustomEventTypeAdapter(Context ctx,List<EventType> ps)
{
this.ctx=ctx;
this.ps=ps;
inflater = (LayoutInflater) ctx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
}
@Override
public int getCount() {
//TODO Auto-generated method stub
return ps.size();
}
@Override
public EventType getItem(int position) {
//TODO Auto-generated method stub
return ps.get(position);
}
@Override
public long getItemId(int position) {
//TODO Auto-generated method stub
return ps.get(position).getId();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View rowView = convertView;
if (convertView == null)
rowView = inflater.inflate(R.layout.spinner_item_local, parent,
false);
TextView textView = (TextView) rowView.findViewById(R.id.spinner_item_text);
EventType proj = getItem(position);
try {
textView.setText(proj.name);
} catch (Exception e) {
}
return rowView;
}

Quelqu'un peut-il m'aider à résoudre ce problème?

poste ton code complet

OriginalL'auteur user3764346 | 2014-11-08