从片段打开对话框(片段视图= null)

时间:2018-01-08 11:22:42

标签: android android-fragments dialog

在我的应用中,我有一个TabLayout,每个标签都是一个单独的片段 我在这个片段之一打开对话框 在我的对话框中包含我单击列表项时所需的列表,项目内容传递到textView中的多个片段

public class ReadingFragment extends Fragment{
   TextView textView;
   View view;
   FloatingActionButton actionButton;

   @Override
    public View onCreateView(final LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
       view = inflater.inflate(R.layout.fragment_read, container, false); 

       textView = view.findViewById(R.id.txtSaved);
       actionButton = view.findViewById(R.id.floatingActionButton);

        actionButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                DialogSearch search = new DialogSearch();
                search.show(getActivity().getSupportFragmentManager(),"baranAbFa");
        }
    });

  }

    public void setData(String x){
       textView.setText(x);
   }
}  

此MainActivity Code(从Dialog接收数据并传递给Fragment的方法):

public class MainActivity extends AppCompatActivity{

     public void setGetAndSend(String name){
        Fragment frags= viewPagerAdapter.getItem(2);
        ((ReadingFragment) frags).setData(name);
        Toast.makeText(MainActivity.this, name, Toast.LENGTH_SHORT).show();
    }
}

这是在My Dialog Class和处理ItemClickListener的方法中:  (strings是列表中显示的列表视图)

public class DialogSearch extends DialogFragment {

   View dialogView;

   @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
    super.onCreateDialog(savedInstanceState);

    dialogView = getActivity().getLayoutInflater().inflate(R.layout.search_dialog, new RelativeLayout(getContext()), false);

    final Dialog builder = new Dialog(getActivity());

    listViewSearch.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                    ((MainActivity)getActivity()).setGetAndSend(strings.get(i));

                }
            });
    }
}

运行并点击列出项目时会出现此错误: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
也在ReadingFragment中查看也是null

0 个答案:

没有答案