2017-01-23 3 views
0

Libraryを使用して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ポインタを返して、あなたのコードを投稿できる私のアダプタで直接私の機能を配置することでした最後の2行。それがnullを返す前の最後です:setTarget()は引数としてビューを受け取ります – filol

答えて

0

私のための最も簡単な方法は、このように私のビルダーを変更し、

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

私はあなたのCardsViewAdapterライブラリがデフォルト(-1を返します)getItemIdを使用していますね。代わりに、RecyclerView.getChild()を使用することができます。

+0

それはどちらも動作しません – filol

関連する問題