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