gpt4 book ai didi

java - EditText View 返回 null

转载 作者:搜寻专家 更新时间:2023-11-01 08:35:20 25 4
gpt4 key购买 nike

我有两个 Activity - 一个主页 fragment Activity 和一个普通的选项 Activity 。

在我的主页 fragment Activity 中,我尝试使用从选项 Activity 中检索到的数据更新 EditText View 。

不幸的是,由于某种原因, fragment Activity 无法检测到我的 View 以进行更新。我不完全确定为什么。这是我的功能:

//update text box
public void updateUserData (String[] userArray){

Log.d("User Update:", "beginning...");
//get username
EditText et=(EditText)getActivity().findViewById(R.id.Input_Name);

if (et == null) {
Log.d("ERROR:", "View returning null");
}

if (userArray[0] != null) {
Log.d("Updating name:", userArray[0]);
et.setText(userArray[0]); }

}

奇怪的是...用于检索 EditText View 的公式在我的代码的其他部分工作得很好。但是这里它总是返回null。有什么建议么?

编辑:这里是我在 OnCreateView 中调用函数的地方:

   if(getActivity().getIntent() != null && getActivity().getIntent().getExtras() != null) {
String[] prelimUserArray = getActivity().getIntent().getExtras().getStringArray("userArray");
updateUserData(prelimUserArray);
}

最佳答案

编辑:

移动这个 fragment :

if (getActivity().getIntent() != null && getActivity().getIntent().getExtras() != null) {
String[] prelimUserArray = getActivity().getIntent().getExtras().getStringArray("userArray");
updateUserData(prelimUserArray);
}

onViewCreated 方法,该方法将在 View 膨胀后调用。

public void onViewCreated(View view, @Nullable Bundle savedInstanceState){
// Your code here
}

查看此图片以了解有关 fragment 生命周期的更多信息。

Fragment's lifecycle


确保在 Fragment 的 onCreateView() 回调被触发后调用您的 updateUserData 方法。


尝试使用 getView() 而不是 this answer 中提到的 getActivity() .

getActivity() returns the Activity hosting the Fragment, while getView() returns the view you inflated and returned by onCreateView. The latter returns a value != null only after onCreateView returns.


此外,如评论中所述,检查您是否确实拥有 ID 为 Input_NameEditText

关于java - EditText View 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37105513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com