2017-01-23 22 views
0

我想使用庫在我的Cardview列表中插入一個教程。對於這個庫我需要給一個視圖(指向元素),但我的mRecyclerView.findViewHolderForItemId(mAdapter.getItemId(1)).itemView總是返回null。爲什麼這會返回null?由於回收視圖尚未創建?創建Recyclerview後調用函數

我也嘗試用來替換:mRecyclerView.findViewHolderForItemId(mAdapter.getItemId(1)).itemView)

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_list_players); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view_list_player); 

     // use this setting to improve performance if you know that changes 
     // in content do not change the layout size of the RecyclerView 
     mRecyclerView.setHasFixedSize(true); 

     // use a linear layout manager 
     mLayoutManager = new LinearLayoutManager(this); 
     mRecyclerView.setLayoutManager(mLayoutManager); 

     // specify an adapter (see also next example) 
     mDataset = Data.bdd.get_list_players(); 
     mAdapter = new CardsViewAdapter(mDataset); 
     mRecyclerView.setAdapter(mAdapter); 

     // Tutorial 
     new MaterialIntroView.Builder(this) 
       .enableDotAnimation(true) 
       .enableIcon(true) 
       .setFocusGravity(FocusGravity.CENTER) 
       .setFocusType(Focus.MINIMUM) 
       .setDelayMillis(500) 
       .enableFadeAnimation(true) 
       .setInfoText("Hi There! Click this card and see what happens.") 
       .setShape(ShapeType.RECTANGLE) 
       .setTarget(mRecyclerView.findViewHolderForItemId(mAdapter.getItemId(1))) 
       .show(); 

} 
+0

你能發佈您的代碼被返回空指針 – Rahul

+0

@Rasi是的,對不起,我省略了最後兩行。它是最後一次返回null:setTarget()作爲視圖的參數 – filol

回答

0

對我來說,最簡單的方法是修改我的建設者這樣,直接把我的功能在我的適配器

CardsViewAdapter(List<Player> myDataset, Activity activity) { 
     mDataset = myDataset; 
     mActivity = activity; 
    } 
0

我覺得你CardsViewAdapter庫使用默認getItemId(返回-1)。您可以改用RecyclerView.getChild()。

+0

它也不工作 – filol

相關問題