2017-10-11 1 views
0

Je suis nouveau dans ce monde. Et im suivre les guides en ligne pour apprendre la langue.studio android. Rien ne se passe quand j'utilise intention.putextra

J'essaie de faire fonctionner un bloc-notes, mais je ne peux pas rouvrir les notes déjà créées. J'utilise le débogueur mais il semble appeler l'activité mais il n'ouvre jamais.

L'appel.

mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() { 
     @Override 
     public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) { 
      View child = recyclerView.findChildViewUnder(motionEvent.getX(), motionEvent.getY()); 

      if (child != null && mGestureDetector.onTouchEvent(motionEvent)) { 
       int position = recyclerView.getChildLayoutPosition(child); 
       Note selectedNote = mNotes.get(position); 
       Intent editorIntent = new Intent(getActivity(), NoteEditorActivity.class); 
       editorIntent.putExtra("id", selectedNote.getId()); 
      } 
      return false; 
     } 

Je peux voir editorIntent.putExtra ("id", selectedNote.getId()); appelle l'action avec un ID mais quand je regarde la partie qui reçoit l'intention rien ne se passe.

public class NoteEditorActivity extends AppCompatActivity { 

private Toolbar mToolbar; 

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


    mToolbar = (Toolbar)findViewById(R.id.toolbar); 
    setSupportActionBar(mToolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); //remove this line in the MainActivity.java 

    if (savedInstanceState == null){ 
     Bundle args = getIntent().getExtras(); 
     if (args != null && args.containsKey("id")){ 
      long id = args.getLong("id", 0); 
      if (id > 0){ 
       openFragment(NotePlainEditorFragment.newInstance(id), "Editor"); 
      } 
     } 
     openFragment(NotePlainEditorFragment.newInstance(0), "Editor"); 
    } 
} 

Mais dans ce code, rien ne réagit.

Quelqu'un peut-il me donner un indice?

Cordialement Danni.

+0

Vous devez appeler 'startActivity (intention)' pour lancer l'activité à partir de l'intention –

Répondre

1

Modifier ce code

mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() { 
    @Override 
    public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) { 
     View child = recyclerView.findChildViewUnder(motionEvent.getX(), motionEvent.getY()); 

     if (child != null && mGestureDetector.onTouchEvent(motionEvent)) { 
      int position = recyclerView.getChildLayoutPosition(child); 
      Note selectedNote = mNotes.get(position); 
      Intent editorIntent = new Intent(getActivity(), NoteEditorActivity.class); 
      editorIntent.putExtra("id", selectedNote.getId()); 
     } 
     return false; 
    } 

Pour

mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() { 
    @Override 
    public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) { 
     View child = recyclerView.findChildViewUnder(motionEvent.getX(), motionEvent.getY()); 

     if (child != null && mGestureDetector.onTouchEvent(motionEvent)) { 
      int position = recyclerView.getChildLayoutPosition(child); 
      Note selectedNote = mNotes.get(position); 
      Intent editorIntent = new Intent(getActivity(), NoteEditorActivity.class); 
      editorIntent.putExtra("id", selectedNote.getId()); 
      startActivity(editorIntent); 
     } 
     return false; 
    } 

Vous devez appeler startActivity pour commencer la transaction de l'activité en cours à l'activité souhaitée

Et essayer d'obtenir id comme celui-ci dans le prochain activité, utilisez ce code à l'intérieur onCreate()

Intent intent = getIntent(); 
String id = intent.getStringExtra("id"); 
+0

Vous devez appeler 'startActivity' pour commencer la transaction de l'activité actuelle à l'activité désirée –

+0

J'ai essayé cela plusieurs fois. Ensuite, il appelle l'activité mais sans aucun contenu. Donc, je ne suis pas sûr qu'il obtient le droit id. Le débogueur dit: void protégé onCreate (Bundle savedInstanceState) Savedinstancestate: Null – user1803817

+0

Oh quand j'ajoute startActivity (editorIntent); Je peux voir dans le débogueur qu'il a effectivement l'ID avec elle. Donc, il doit y avoir un autre problème où il obtient le contenu de la base de données. Merci beaucoup. J'ai travaillé dessus pendant 6 jours ... – user1803817