在我的应用中,我有一个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