Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何使用RecycleView显示对话框_Android - Fatal编程技术网

Android 如何使用RecycleView显示对话框

Android 如何使用RecycleView显示对话框,android,Android,我有一个带有RecycleView的Android活动,我在这个RecycleView上实现了一个ClickEvent 如果我尝试单击一个项目,我想显示一个与另一个RecycleView的对话框 这是我的活动代码: public class ResultActivity extends AppCompatActivity { private List<Result> lista= new ArrayList<Result>(); private Recyc

我有一个带有RecycleView的Android活动,我在这个RecycleView上实现了一个ClickEvent

如果我尝试单击一个项目,我想显示一个与另一个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){
        }
    }
}

在此代码之后,recyclerViewResult为null,但不应为null。

您的
RecyclerView
返回
null
的原因是您调用的
findViewById
没有正确的视图前缀。因为您在
对话框中使用的是自定义布局
,所以应该使用
LayoutInflater
对布局进行充气,然后使用充气视图对象查找属于
对话框的
回收视图
,如下所示:

View dialogView=inflater.inflate(R.layout.result\u model,null);
recyclerViewResult=(RecyclerView)dialogView.findViewById(R.id.recycler\u结果\u视图)

dialog.setContentView(dialogView)

您的
RecyclerView
返回
null
的原因是您调用的
findViewById
没有正确的视图前缀。因为您在
对话框中使用的是自定义布局
,所以应该使用
LayoutInflater
对布局进行充气,然后使用充气视图对象查找属于
对话框的
回收视图
,如下所示:

View dialogView=inflater.inflate(R.layout.result\u model,null);
recyclerViewResult=(RecyclerView)dialogView.findViewById(R.id.recycler\u结果\u视图)

setContentView(dialogView)

我真的建议在您的案例中使用fragment dialog。我真的建议在您的案例中使用fragment dialog。
recyclerViewResult = (RecyclerView) findViewById(R.id.recycler_result_view);