J'essaie actuellement d'appeler une autre activité via un OptionsMenuItem
en utilisant Intent
. J'ai 2 mises en page. La 1ère mise en page a un EditText
avec une chaîne qui est extraite d'une base de données. La deuxième disposition a également un EditText
qui est vide. Le OptionsMenuItem
est dans la 1ère mise en page. Chaque fois que je clique sur le MenuItem
, il est censé appeler la 2ème mise en page et extraire le texte de la première mise en page dans le EditText
dans la deuxième mise en page, mais à la place il se bloque. J'ai essayé d'utiliser la méthode ActivityResult mais je n'arrive toujours pas à le faire fonctionner. J'espère que vous pouvez m'aider.Intent bloque mon application
Ceci est mon code Java où l'intention est de l'activité principale avec la 1ère mise en page:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
// Build the menus that are shown when editing.
if (mState == STATE_EDIT) {
menu.add(0, REVERT_ID, 0, R.string.menu_revert)
.setIcon(android.R.drawable.ic_menu_revert);
if (!mNoteOnly) {
menu.add(0, DELETE_ID, 0, R.string.menu_delete)
.setIcon(android.R.drawable.ic_menu_delete);
menu.add(1, ADD_ID, 1, R.string.add_namespace);
menu.add(2, MENU_ITEM_ADD, 2, R.string.menu_add);
}
// Build the menus that are shown when inserting.
} else {
menu.add(0, DISCARD_ID, 0, R.string.menu_discard)
.setIcon(android.R.drawable.ic_menu_delete);
menu.add(1, ADD_ID, 1, R.string.add_namespace);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle all of the possible menu actions.
switch (item.getItemId()) {
case DELETE_ID:
deleteNote();
finish();
break;
case DISCARD_ID:
cancelNote();
break;
case REVERT_ID:
cancelNote();
break;
case ADD_ID:
addNamespace();
break;
case MENU_ITEM_ADD:
testActivity();
break;
}
return super.onOptionsItemSelected(item);
}
private final void testActivity()
{
Intent i = new Intent(this, TitleEditor.class);
startActivityForResult(i, STATIC_INTEGER_VALUE);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode)
{
case(STATIC_INTEGER_VALUE):
{
if(resultCode == Activity.RESULT_OK)
{
newTextTemplate = (EditText) findViewById(R.id.smsTemplate);
String newTemplate = data.getStringExtra(TitleEditor.PUBLIC_STATIC_STRING_IDENTIFIER);
newTextTemplate.setText(newTemplate);
}
break;
}
}
}
Ceci est mon code java avec la 2e mise en page:
public class TitleEditor extends Activity implements View.OnClickListener {
private static final String[] PROJECTION = new String[] {
NotePad.Notes._ID, // 0
NotePad.Notes.TITLE, // 1
NotePad.Notes.TEMPLATE, // 2
};
private static final int COLUMN_INDEX_TITLE = 1;
private static final int COLUMN_INDEX_TEMPLATE = 2;
private Cursor mCursor;
private EditText mToContacts;
private EditText mFromTemplate;
public static final String PUBLIC_STATIC_STRING_IDENTIFIER = null;
private Uri mUri;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.title_editor);
mUri = getIntent().getData();
mCursor = managedQuery(mUri, PROJECTION, null, null, null);
mFromTemplate = (EditText) this.findViewById(R.id.smsTemplate);
mFromTemplate.setOnClickListener(this);
Button b = (Button) findViewById(R.id.ok);
b.setOnClickListener(this);
}
public void onClick(View v) {
Intent resultIntent = new Intent();
resultIntent.putExtra(PUBLIC_STATIC_STRING_IDENTIFIER, NoteEditor.smsTemplate);
setResult(Activity.RESULT_OK, resultIntent);
finish();
}
}
Mon logcat demandé par srinathhs: 11-22 04: 39: 12.635: ERREUR/AndroidRuntime (456): gestionnaire Uncaught: thread principal sortant en raison d'une exception non interceptée 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): java.lang. RuntimeException: Impossible de démarrer l'activité ComponentInf o {com.example.android.notepad/com.example.android.notepad.TitleEditor}: java.lang.NullPointerException 11-22 04: 39: 12.815: ERREUR/AndroidRuntime (456): at android.app.ActivityThread. performLaunchActivity (ActivityThread.java:2401) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): à l'adresse android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2417) 11-22 04: 39: 12.815: ERREUR/AndroidRuntime (456): at android.app.ActivityThread.access $ 2100 (ActivityThread.java:116) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): à l'adresse android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1794) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): à l'adresse android.os.Handler.dispatchMessage (Handler.java:99) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): at android.os.Looper.loop (Looper.java:123) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): at android.app.ActivityThread.main (ActivityThread.java:4203) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): à java.lang.reflect.Method.invokeNative (méthode native) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): à java.lang.reflect.Method.invoke (Method.java:521) 11- 22 04: 39: 12.815: ERROR/AndroidRuntime (456): à l'adresse com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:791) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): à com.android.internal.os.ZygoteInit.main (ZygoteInit.java:549) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): à dalvik.system.NativeStart.main (méthode native) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): Causée par: java.lang.NullPointerException 11-22 04: 39: 12.815: ERROR/A ndroidRuntime (456): à android.content.ContentResolver.acquireProvider (ContentResolver.java:574) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): à android.content.ContentResolver.query (ContentResolver.java: 147) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): à l'adresse android.app.Activity.managedQuery (Activity.java:1493) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456) : à com.example.android.notepad.TitleEditor.onCreate (TitleEditor.java:84) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): à android.app.Instrumentation.callActivityOnCreate (Instrumentation.java: 1123) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456): à android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2364) 11-22 04: 39: 12.815: ERROR/AndroidRuntime (456) : ... 11 plus
Il doit y avoir une trace de pile lorsque votre application a planté. Pouvez-vous ajouter cela ici? – srinathhs
Quel est le crash? Voir ma question la plus regardée (cliquez sur mon nom) pour un oubli commun. – KevinDTimm
@srinathhs: si vous parlez de LogCat, je peux le poster. Mais je ne vois aucune erreur à ce sujet. –