片段中的 EditText 上的空指针异常 [重复]

Posted

技术标签:

【中文标题】片段中的 EditText 上的空指针异常 [重复]【英文标题】:Null Pointer Exception on an EditText in a Fragment [duplicate] 【发布时间】:2020-05-08 12:04:13 【问题描述】:

我正在构建一个注册页面,我想要一个日期选择器,但每当我点击用户Fragment 打开注册页面时,应用程序就会崩溃,错误是EditText 中的nullPointerException。请帮我解决。

这是UserFragment.java的代码

public class UserFragment extends Fragment 
public EditText et_Date;
public static final int REQUEST_CODE = 11;
String selectedDate;
private OnFragmentInteractionListener mListener;
public DatePickerDialog.OnDateSetListener setListener;
View view;
public UserFragment() 

public static UserFragment newInstance() 
    UserFragment fragment = new UserFragment();
    return fragment;

@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);

@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) 
    view = inflater.inflate(R.layout.adduser_fragment, container, false);
    et_Date  = (EditText) view.findViewById(R.id.etdate);
    final FragmentManager fm = ((AppCompatActivity)getActivity()).getSupportFragmentManager();
    et_Date.setOnClickListener(new View.OnClickListener() 

        @Override
        public void onClick(View v) 
            AppCompatDialogFragment newFragment = new DatePickerFragment();
            newFragment.setTargetFragment(UserFragment.this,REQUEST_CODE);
            newFragment.show(fm, "DatePicker");
        
    );
    return view;


@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) 
    if(requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK)
            selectedDate = data.getStringExtra("SelectedDate");
            et_Date.setText(selectedDate);
    


@Override
public void onAttach(Context context) 
    super.onAttach(context);
    if(context instanceof OnFragmentInteractionListener)
        mListener= (OnFragmentInteractionListener) context;
    else
        throw new RuntimeException(context.toString()+"must implement OnFragmentInterationListener");
    


@Override
public void onDetach() 
    super.onDetach();
    mListener = null;

public interface OnFragmentInteractionListener 

    public void onFragmentInteraction(Uri uri);


【问题讨论】:

请显示 logcat 错误。 java.lang.NullPointerException:尝试在 com.example.navigationdrawer 的空对象引用上调用虚拟方法“void android.widget.TextView.setOnClickListener(android.view.View$OnClickListener)”。 UserFragment.onCreateView(UserFragment.java:60) 【参考方案1】:

您的 id 为 etdate 的 editText 实际上在布局 adduser_fragment 中?这个错误可能是因为视图在另一个布局中(你忘记了)。抱歉回答,我没有足够的声誉发表评论。

【讨论】:

是的,它在 adduser_fragment.xml 中。我给 EditText 提供了 etdate id。 findViewById 没有找到您的 EditText 对象。堆栈跟踪(如果将其添加到帖子中会更好看;评论格式有限)清楚地表明您正在对 null 对象调用 setOnClickListener,在您的情况下是 et_Date。如果您发帖 adduser_fragment.xml 会很有帮助。

以上是关于片段中的 EditText 上的空指针异常 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

片段中的空指针异常

我以外的其他机器上的空指针异常[重复]

用于登录Android Studio的实时firebase数据库上的空指针异常[重复]

操作栏中的空指针异常[重复]

方法 oncreateview 中片段中 listview.setadapter() 的空指针异常

服务类Spring引导中的空指针异常[重复]