2017-10-11 54 views
0

我在這個世界上是新的,沒有任何反應。並且我會遵循在線指南來學習這門語言。android studio。當我使用intent.putextra

我試圖讓一個記事本的工作,但我不能重新打開已經創建的音符。 我使用調試器,但它似乎調用活動,但它永遠不會打開。

呼叫。

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; 
     } 

我可以看到editorIntent.putExtra(「id」,selectedNote.getId());正在用一個id調用這個動作,但是當我看着接受這個意圖的那個部分時,什麼也沒有發生。

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"); 
    } 
} 

但是在這段代碼中沒有任何反應。

有人可以給我一個提示?

問候丹妮。

+0

您需要調用'startActivity(intent)'從intent開始活動 –

回答

1

改變此密碼

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; 
    } 

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; 
    } 

你需要調用startActivity從當前活動開始交易所需的活性

並嘗試獲取ID這樣在明年活動中,使用此代碼裏面onCreate()

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

您需要調用'startActivity'開始從當前活動到所需活動的交易 –

+0

我試了幾次。然後它會調用該活動,但沒有任何內容。所以我不確定它是否正確。調試器說:保護無效onCreate(Bundle savedInstanceState)Savedinstancestate:空 – user1803817

+0

哦,當我添加startActivity(editorIntent);我可以在調試器中看到它實際上已經獲得了id。所以在從數據庫獲取內容時必定存在其他問題。非常感謝。我爲此工作了6天...... – user1803817