2016-11-26 7 views
4

私が作成しているアプリでは、アイテムのリストがあります。ユーザーがこれらの項目のいずれかをタップすると、新しいウィンドウが開き、ユーザーがタップした項目内の情報が表示されます。私はタップしたときにここでthat-RecyclerViewの項目をタップしたときに、「ViewPostImeInputStage processPointer 0」ログに記録されますか?

NoteListFragment.java パブリッククラスNoteListFragmentのための私のJavaコードは、何らかの理由でフラグメント{

private FloatingActionButton mFab; 
private View mRootView; 
private List<Note> mNotes; 
private RecyclerView mRecyclerView; 
private NoteListAdapter mAdapter; 
private RecyclerView.LayoutManager mLayoutManager; 


public NoteListFragment() { 
    // Required empty public constructor 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment and hold the reference 
    //in mRootView 
    mRootView = inflater.inflate(R.layout.fragment_note_list, container, false); 

    //Get a programmatic reference to the Floating Action Button 
    mFab = (FloatingActionButton)mRootView.findViewById(R.id.fab); 

    //attach an onClick listener to the Floating Action Button 
    mFab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      startActivity(new Intent(getActivity(), NoteEditorActivity.class)); 
     } 
    }); 

    setupList(); 
    return mRootView; 
} 


private void setupList() { 
    mRecyclerView = (RecyclerView) mRootView.findViewById(R.id.note_recycler_view); 
    mRecyclerView.setHasFixedSize(true); 
    mLayoutManager = new LinearLayoutManager(getActivity()); 
    mRecyclerView.setLayoutManager(mLayoutManager); 

    final GestureDetector mGestureDetector = 
      new GestureDetector(getActivity(), new GestureDetector.SimpleOnGestureListener(){ 
       @Override 
       public boolean onSingleTapUp(MotionEvent e) { 
        return true; 
       } 
      }); 


    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()); 
      } 
      System.out.print("Failed to load Editor class."); 
      return false; 

     } 

     @Override 
     public void onTouchEvent(RecyclerView rv, MotionEvent e) { 

     } 

     @Override 
     public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) { 

     } 
    }); 

    mAdapter = new NoteListAdapter(mNotes, getActivity()); 
    mRecyclerView.setAdapter(mAdapter); 
    mNotes = NoteManager.newInstance(getActivity()).getAllNotes(); 
} 

} 

NoteEditorActivity.java

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

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_note_editor, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

private void openFragment(final Fragment fragment, String title){ 
    getSupportFragmentManager() 
      .beginTransaction() 
      .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) 
      .replace(R.id.container, fragment) 
      .addToBackStack(null) 
      .commit(); 
    getSupportActionBar().setTitle(title); 
} 
} 

延びています。アイテムの1つ、何も起こらず、ログには

と表示されます
11-26 09:45:17.963 12963-12963/com.example.simplenotepad D/ViewRootImpl: ViewPostImeInputStage processPointer 0 
11-26 09:45:18.073 12963-12963/com.example.simplenotepad D/ViewRootImpl: ViewPostImeInputStage processPointer 1 

これはどういう意味ですか?これをどうやって解決するのですか?ありがとう!

答えて

1

あなたは、RecyclerView on touchイベントでアクティビティを呼び出していません。

補正でコードされています。今のエディタ画面が出てくるん

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); 
     } 
     System.out.print("Failed to load Editor class."); 
     return false; 

    } 
+0

が、それは何の情報も表示されません。あなたは私の質問に答えました。 –

+0

@GeorgeB表示されていない場合、問題はNoteEditorActivityにあります。 NoteEditorActivityのコードを投稿できますか? – jonathanrz

+0

私は質問に今投稿しました –

関連する問題