Java 如何通过解析在应用程序启动时自动检索数据?

Java 如何通过解析在应用程序启动时自动检索数据?,java,android,parse-platform,database-backups,oncreate,Java,Android,Parse Platform,Database Backups,Oncreate,目前,我只能在单击“刷新”按钮时检索数据 我如何让它在每次启动应用程序时,甚至每次在页面之间切换时,自动从parse中检索数据? 谢谢 相关代码: 公共类MyActivity扩展了ActionBarActivity 实现NavigationDrawerFragment.NavigationDrawerCallbacks{ 字符串eventTxt; 编辑文本设置编辑文本; ParseObject事件=新的ParseObject(“事件”); @凌驾 创建时受保护的void(Bundle saved

目前,我只能在单击“刷新”按钮时检索数据

我如何让它在每次启动应用程序时,甚至每次在页面之间切换时,自动从parse中检索数据? 谢谢

相关代码:

公共类MyActivity扩展了ActionBarActivity
实现NavigationDrawerFragment.NavigationDrawerCallbacks{
字符串eventTxt;
编辑文本设置编辑文本;
ParseObject事件=新的ParseObject(“事件”);
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
mNavigationDrawerFragment=(导航DrawerFragment)
getSupportFragmentManager().findFragmentById(R.id.navigation\u抽屉);
mTitle=getTitle();
//把抽屉摆好。
mNavigationDrawerFragment.setUp(
R.id.navigation\u抽屉,
(抽屉布局)findViewById(R.id.抽屉布局);
seteditTxt=(EditText)findViewById(R.id.seteditTxt);
updatelocalData();
更新数据();
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
seteditTxt=(EditText)findViewById(R.id.seteditTxt);
int id=item.getItemId();
if(id==R.id.action\u刷新){
updatelocalData();
更新数据();
}
if(id==R.id.action_示例){
eventTxt=seteditTxt.getText().toString();
Events.put(“EventName”,eventTxt);
Events.savefinally(新的SaveCallback(){
公共作废完成(Parsee异常){
如果(e==null){
//保存成功。
Toast.makeText(getApplicationContext(),“已保存”,Toast.LENGTH_SHORT.show();
}否则{
//保存失败。
Toast.makeText(getApplicationContext(),“保存失败”,Toast.LENGTH_SHORT.show();
}
}
});
事件。pinInBackground();
}
返回super.onOptionsItemSelected(项目);
}
公共void updateData(){
ParseQueryquery=ParseQuery.getQuery(“事件”);
query.getInBackground(“d51GM3syxp”,新的GetCallback(){
public void done(ParseObject事件,parsee异常){
如果(e==null){
String Txt=Events.getString(“EventName”);
seteditTxt.setText(Txt);
}否则{
//出了点问题
System.out.print(“解析检索错误”);
}
}
});
}
public void updatelocalData(){
ParseQueryquery=ParseQuery.getQuery(“事件”);
query.fromLocalDatastore();
query.getInBackground(“d51GM3syxp”,新的GetCallback(){
public void done(ParseObject事件,parsee异常){
如果(e==null){
String Txt=Events.getString(“EventName”);
seteditTxt.setText(Txt);
}否则{
//出了点问题
系统输出打印(“本地检索错误”);
}
}
});
}
}
当我加上:

seteditTxt=(EditText)findViewById(R.id.seteditTxt);
updatelocalData();
更新数据();
在我的onCreate()中,它在seteditTxt的第一个updatelocalData()方法中给出了一个错误,它说: 尝试在空对象引用上调用虚拟方法“void android.widget.EditText.setText(java.lang.CharSequence)”——

活动\u my.xml文件:


片段xml文件:


只需移动相关的方法,我认为:

  updatelocalData();
  updateData();
到活动的
onCreate()
onStart()
,或
onResume()
,具体取决于您的需要。
如果在
onCreate()
中执行此操作,请确保包括
EditText seteditTxt
方法所依赖的所有UI元素都已初始化

拥有一个基本活动并编写您的逻辑,因此当您在活动之间导航时,它会从ParseThank加载内容。如中所示的基本活动?数据显示在片段上-这是主要活动@哈沙瓦德汉芬。您仍然可以创建基本片段,并在片段的开始调用基本活动的方法。当我将其放在onCreate中时,更新方法中会出现一个错误,即尝试调用虚拟方法'void android.widget.EditText.setText(java.lang.CharSequence)'在空对象引用上–在添加时添加activity_my.xml文件:seteditTxt=(EditText)findViewById(R.id.seteditTxt);updatelocalData();更新数据();在我的onCreate()中,它在seteditTxt的第一个updatelocalData()方法中给了我一个错误,它说:尝试在空对象引用上调用虚拟方法'void android.widget.EditText.setText(java.lang.CharSequence)'可以发布onCreate的代码吗?您也可以尝试在onStartWell中调用方法,因为您无法从活动中找到片段的EditText。该菜单之所以有效,是因为当您单击“刷新”时,片段布局已附加到活动的。但这是错误和危险的。您应该使用侦听器或EventBus/Otto在活动和片段之间进行通信。哦,好的,谢谢。我不确定听众会如何工作。我尝试在片段活动中检索-但由于某些原因,它无法解析findViewById(R.id.seteditTxt)部分中的“findbyView”。已解决它!我取而代之的是从片段文件中检索。谢谢