我有两个活动 - 一个Home片段活动和一个正常的Options活动。
在我的家庭片段活动中,我尝试使用从Options活动中检索到的数据来更新EditText视图。
不幸的是,由于某种原因,片段活动无法检测到我的更新视图。我不完全确定原因。这是我的功能:
//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);
}
答案 0 :(得分:3)
修改强>
移动此代码段:
if (getActivity().getIntent() != null && getActivity().getIntent().getExtras() != null) {
String[] prelimUserArray = getActivity().getIntent().getExtras().getStringArray("userArray");
updateUserData(prelimUserArray);
}
到onViewCreated
方法,该方法将在视图膨胀后调用。
public void onViewCreated(View view, @Nullable Bundle savedInstanceState){
// Your code here
}
查看此图片,了解有关Fragment生命周期的更多信息。
确保在片段updateUserData
回调被触发后调用onCreateView()
方法。
尝试使用getView()
中提到的getActivity()
代替getActivity()
。
getView()
返回托管片段的Activity,而EditText
返回onCreateView膨胀和返回的视图。后者仅在onCreateView返回后才返回值!= null。
此外,正如评论中所述,请检查您的 try (RepositoryConnection conn = rep.getConnection()) {
ValueFactory vf = conn.getValueFactory();
File file = new File("/path/to/weirdlyformattedrdffile.txt");
// open the file for reading
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
// start a transaction
conn.begin();
// read the file line-by-line
while ((line = br.readLine()) != null) {
// each line is an RDF triple with a subject, predicate, and object
String[] triple = line.split("|");
IRI subject = vf.createIRI(triple[0]);
IRI predicate = vf.createIRI(triple[1]);
IRI object = vf.createIRI(triple[2]);
// add the triple to the database
conn.add(subject, predicate, object);
}
// commit the txn when all lines are read
conn.commit();
}
}
确实是否具有ID Input_Name 。