J'ai quelques problèmes en appelant startActivityForResult de onClickListener.secActivity appellent parfois seulement StartActivityForResult
Dans la première activité que j'ai 2 façons de commencer startActivityForResult
ListView
avecOnItemClick()
-Lorsque j'appellestartActivityForResult
duListView OnItemClick()
il fonctionne très bienButton
avecOnClickListener()
-mais quand J'appelle startActivityForResult de laButton OnClickListener()
la deuxième activité ne commencera pasOnActivityResult
de quelque part. voici mon code:
* Mise à jour: merci pour votre temps, ce que vous offerd est l'un des changements que je allready essayé, mais son reste le même mon nouveau code:
premier appel avec startActivityForResult() (fin des travaux - à l'intérieur OnCreate()!):
listView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id)
{
Intent intent = new Intent(NoteNames.this, EditNote.class);
intent.putExtra("subject", noteList.get(position).getSubjectText());
intent.putExtra("body", noteList.get(position).getBodyText());
startActivityForResult(intent, position);
}
});
Deuxième appel: wont start onActivityResult():
@Override
public void onClick(View v) {
if(v.getId() == addButton.getId()){
Intent intent = new Intent(NoteNames.this, EditNote.class);
intent.putExtra("subject", "");
intent.putExtra("body", "");
startActivityForResult(intent, idOfNew);
}
}
c'est le SecondActivity:
private EditText subjectEditText, bodyEditText;
private Button approve, decline;
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_edit_note);
subjectEditText = (EditText) findViewById(R.id.note_head);
bodyEditText = (EditText) findViewById(R.id.note_text);
approve = (Button) findViewById(R.id.approve_button);
decline = (Button) findViewById(R.id.decline_button);
Intent intent = getIntent();
String subject = intent.getExtras().getString("subject");
String body = intent.getExtras().getString("body");
subjectEditText.setText(subject);
bodyEditText.setText(body);
Handler handler = new Handler();
approve.setOnClickListener(handler);
decline.setOnClickListener(handler);
super.onCreate(savedInstanceState);
}
class Handler implements OnClickListener{
@Override
public void onClick(View v) {
if (v.getId()==approve.getId()){
Intent intent = getIntent();
intent.putExtra("subject", String.valueOf(subjectEditText.getText()));
intent.putExtra("body", String.valueOf(bodyEditText.getText()));
setResult(RESULT_OK, intent);
finish();
}
}
}
}
Merci pour votre temps, je n'ai toujours pas compris comment poster du code dans un commentaire alors j'ai mis à jour ma question initiale. – user2000687
Je vais essayer de reproduire le problème. – mihail
trouvé, vérifiez la mise à jour de la réponse :) – mihail