2016-05-03 17 views
0

私はRecycleViewでAndroidのアクティビティを持っており、このRecycleViewでClickEventを実装しました。RecycleViewでダイアログを表示する方法

1つのアイテムをクリックしようとすると、別のRecycleViewでダイアログを表示したいと思います。

これが私の活動のコードです:

public class ResultActivity extends AppCompatActivity { 
    private List<Result> lista= new ArrayList<Result>(); 
    private RecyclerView recyclerView; 
    private RecyclerView recyclerViewResult; 
    private ResultsAdapter pAdapter; 
    private ResultXResultAdapter prAdapter; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     try{ 


     super.onCreate(savedInstanceState); 
     setContentView(R.layout.results_activity); 

     recyclerView = (RecyclerView) findViewById(R.id.recycler_view); 

     ResultDAO manager = new ResultDAO(this); 
     lista=manager.getResults(); 

     pAdapter = new ResultsAdapter(lista, new ResultsAdapter.OnItemClickListener() { 
      @Override 
      public void onItemClick(Result item) { 

        try{ 
         final Dialog dialog = new Dialog(ResultActivity.this); 

         dialog.setContentView(R.layout.result_modal); 
         recyclerViewResult = (RecyclerView) findViewById(R.id.recycler_result_view); 
         dialog.setTitle("Parametri"); 

         prAdapter = new ResultXResultAdapter(item.getListaParametri()); 
         RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext()); 
         recyclerViewResult.setLayoutManager(mLayoutManager); 
         recyclerViewResult.setItemAnimator(new DefaultItemAnimator()); 
         recyclerViewResult.setAdapter(prAdapter); 


         dialog.show(); 
        }catch(Exception e){ 
         Log.e("",""); 
        } 
      } 
     }); 
     RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getApplicationContext()); 
     recyclerView.setLayoutManager(mLayoutManager); 
     recyclerView.setItemAnimator(new DefaultItemAnimator()); 
     recyclerView.setAdapter(pAdapter); 
     // prepareMovieData(); 
     }catch(Exception e){ 
     } 
    } 
} 

私は自分のアプリケーションを実行し、私は1つの項目をクリックしようとすると、私がnull例外を持っています。 recyclerViewResultがnullの場合、このコードの後に​​

recyclerViewResult = (RecyclerView) findViewById(R.id.recycler_result_view); 

が、nullにすることはできません問題は、この行のコードです。

+0

:あなたはとても似dialogに属するRecyclerViewを見つけることDialogあなたがして膨張したビューオブジェクトを使用するレイアウトを膨らませるLayoutInflaterを使用する必要があり、あなたのカスタムレイアウトを使用しているのであなたのケースでフラグメントのダイアログを使用してください。 – Amir

答えて

2

RecyclerViewnullを返す理由は、適切なプレフィックスプレフィックスを付けずにfindViewByIdと呼び出しているためです。

View dialogView = inflater.inflate(R.layout.result_modal, null); recyclerViewResult = (RecyclerView) dialogView.findViewById(R.id.recycler_result_view) dialog.setContentView(dialogView)

私は本当ににお勧め
関連する問題