Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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
Java 从列表中选择项目时,该项目不会显示在textview(EditorFragment)中_Java_Android - Fatal编程技术网

Java 从列表中选择项目时,该项目不会显示在textview(EditorFragment)中

Java 从列表中选择项目时,该项目不会显示在textview(EditorFragment)中,java,android,Java,Android,EditorFragment,textview:onclick,dialogfragment将打开, dialogfragment,两部分:a)搜索字段b)回收视图。 适配器,它处理列表中的项选择 EditorFragment代码:在EditorFragment中,选中项目后,该项目将显示在textview中 public class EditorFragment extends Fragment { public static TextView tv_custom_spinn

EditorFragment,textview:onclick,dialogfragment将打开, dialogfragment,两部分:a)搜索字段b)回收视图。 适配器,它处理列表中的项选择

EditorFragment代码:在EditorFragment中,选中项目后,该项目将显示在textview中

    public class EditorFragment extends Fragment {

    public static TextView tv_custom_spinner;
    private Context context;
    SearchAdapter searchAdapter = null;
    List<SearchModel> searchModelList ;


    public EditorFragment(Context context) {
        this.context = context;
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_blank, container, false);
        searchModelList = new ArrayList<>();
        searchModelList.add(new SearchModel("First Name"));
        searchModelList.add(new SearchModel("Second Name"));
        searchModelList.add(new SearchModel("Third Name"));
        searchModelList.add(new SearchModel("Fourth Name"));
        searchModelList.add(new SearchModel("Fifth Name"));
        searchModelList.add(new SearchModel("Sixth Name"));

        searchAdapter = new SearchAdapter(context,searchModelList);

        setResources(view);
        clickSpinner();
        return view;
    }

    private void setResources(View view){
        tv_custom_spinner = view.findViewById(R.id.tv_custom_spinner);
    }

    private void clickSpinner(){
        tv_custom_spinner.setOnClickListener(v->{
            FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
            SpinnerDialogfragment spinnerDialogFragment= new  SpinnerDialogfragment(context, searchModelList);

            spinnerDialogFragment.show(fragmentManager, "SPINNER");
        });

        searchAdapter.setUpdateDataListener(value -> tv_custom_spinner.setText(value));
    }
}

进程25724已终止。

onViewCreated
方法中初始化此
DataListener

@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_blank, container, false);
    searchModelList = new ArrayList<>();
    searchModelList.add(new SearchModel("First Name"));
    searchModelList.add(new SearchModel("Second Name"));
    searchModelList.add(new SearchModel("Third Name"));
    searchModelList.add(new SearchModel("Fourth Name"));
    searchModelList.add(new SearchModel("Fifth Name"));
    searchModelList.add(new SearchModel("Sixth Name"));

    searchAdapter = new SearchAdapter(context,searchModelList);

    //Initialise  DataListener here
    searchAdapter.setUpdateDataListener(new UpdateDataListener() {
        @Override
        public void onItemSelected(String value) {
            tv_custom_spinner.setText(value);
        }
    });

    setResources(view);
    clickSpinner();
    return view;
}
@覆盖
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图=充气机。充气(R.layout.fragment\u blank,container,false);
searchModelList=新的ArrayList();
添加(新的SearchModel(“名字”));
添加(新的SearchModel(“第二个名称”);
添加(新的SearchModel(“第三个名称”);
添加(新的SearchModel(“第四个名称”);
添加(新的SearchModel(“第五个名称”);
添加(新的SearchModel(“第六个名称”);
searchAdapter=新的searchAdapter(上下文,searchModelList);
//在此处初始化DataListener

setUpdateDataListener(新的UpdateDataListener(){ @凌驾 已选择公共值(字符串值){ tv_custom_spinner.setText(值); } }); 设置资源(视图); 单击微调器(); 返回视图; }
在片段onviewcreated()调用中


然后再试一次。空期望值应该消失并且应该可以工作

如果您的侦听器为空,请尝试在activity/fragmentUpdated中设置/更新,您永远不会创建UpdateDataStenerSearchAdapter.setUpdateDataListener(新的SearchAdapter.UpdateDataListener(){@Override public void onItemSelected(字符串值){tv_custom_spinner.setText(value);}}});当使用lambda时,此时无需创建updateDataListener(),是否需要推送“SpinnerDialogfragment.java”的代码??
E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.coco.myapplication, PID: 25724
    java.lang.NullPointerException: Attempt to invoke interface method 'void com.coco.myapplication.SearchAdapter$UpdateDataListner.onItemSelected(java.lang.String)' on a null object reference
        at com.coco.myapplication.SearchAdapter.lambda$onBindViewHolder$0$SearchAdapter(SearchAdapter.java:53)
        at com.coco.myapplication.-$$Lambda$SearchAdapter$fc2DFbNCnzN7ljubXWaQ4mEoai8.onClick(Unknown Source:4)
        at android.view.View.performClick(View.java:6608)
        at android.view.View.performClickInternal(View.java:6585)
        at android.view.View.access$3100(View.java:782)
        at android.view.View$PerformClick.run(View.java:25945)
        at android.os.Handler.handleCallback(Handler.java:874)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:198)
        at android.app.ActivityThread.main(ActivityThread.java:6729)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
@Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_blank, container, false);
    searchModelList = new ArrayList<>();
    searchModelList.add(new SearchModel("First Name"));
    searchModelList.add(new SearchModel("Second Name"));
    searchModelList.add(new SearchModel("Third Name"));
    searchModelList.add(new SearchModel("Fourth Name"));
    searchModelList.add(new SearchModel("Fifth Name"));
    searchModelList.add(new SearchModel("Sixth Name"));

    searchAdapter = new SearchAdapter(context,searchModelList);

    //Initialise  DataListener here
    searchAdapter.setUpdateDataListener(new UpdateDataListener() {
        @Override
        public void onItemSelected(String value) {
            tv_custom_spinner.setText(value);
        }
    });

    setResources(view);
    clickSpinner();
    return view;
}
setUpdateDataListener("pass your listner")