我正在尝试开发一个小型应用程序 BusTracker,当您提到往返地点时,它会列出巴士列表。 我有一个 frombutton,单击该按钮将调用另一个 Activity (这是一个列表 Activity ),该 Activity 将显示位置列表。我选择一个,该位置将被保存,并且第一个 Activity 中的文本字段将被填充。我在第二个 Activity 的 oncreate 方法中收到 stackOverFlowerror 。谁能给我一个可能的原因吗?
这是我在firstActivity onClick方法中的代码
case R.id.from_button:
Intent i= new Intent(this,PlacesActivity.class);
startActivity(i);
String ss=PlacesActivity.getPlace();
然后在第二个Activity中
this.onCreate(onSavedInstanceState);
setContentView(R.layout.places);
ListView placesList=(ListView)this.findViewById(R.layout.places);
placesList.setVisibility(View.VISIBLE);
placesList.setAdapter(new ArrayAdapter(this,R.array.fromArray));
placesList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
//placesList.setOnItemClickListener(this);
}
public void onListItemClick(ListView l, View v, int position, long id)
{
Object o=this.getListAdapter().getItem(position);
String s=o.toString();
place=s;
System.out.println("sssssssssssss"+s);
}
我得到的错误:
03-10 18:02:46.352: E/AndroidRuntime(542): FATAL EXCEPTION: main
03-10 18:02:46.352: E/AndroidRuntime(542): java.lang.StackOverflowError
03-10 18:02:46.352: E/AndroidRuntime(542): at com.example.BusTracker.PlacesActivity.onCreate(PlacesActivity.java:17)
03-10 18:02:46.352: E/AndroidRuntime(542): at com.example.BusTracker.PlacesActivity.onCreate(PlacesActivity.java:17)
03-10 18:02:46.352: E/AndroidRuntime(542): at com.example.BusTracker.PlacesActivity.onCreate(PlacesActivity.java:17)
03-10 18:02:46.352: E/AndroidRuntime(542): at com.example.BusTracker.PlacesActivity.onCreate(PlacesActivity.java:17)
03-10 18:02:46.352: E/AndroidRuntime(542): at com.example.BusTracker.PlacesActivity.onCreate(PlacesActivity.java:17)
03-10 18:02:46.352: E/AndroidRuntime(542): at com.example.BusTracker.PlacesActivity.onCreate(PlacesActivity.java:17)
03-10 18:02:46.352: E/AndroidRuntime(542): at com.example.BusTracker.PlacesActivity.onCreate(PlacesActivity.java:17)
03-10 18:02:46.352: E/AndroidRuntime(542): at com.example.BusTracker.PlacesActivity.onCreate(PlacesActivity.java:17)
03-10 18:02:46.352: E/AndroidRuntime(542): at com.example.BusTracker.PlacesActivity.onCreate(PlacesActivity.java:17)
03-10 18:02:46.352: E/AndroidRuntime(542): at com.example.BusTracker.PlacesActivity.onCreate(PlacesActivity.java:17)
最佳答案
你不应该调用this.onCreate(onSavedInstanceState);
,而应该调用super.onCreate(onSavedInstanceState);
,否则你会陷入无限递归调用create和然后你会得到 STackOverflow。
关于java - 尝试从另一个 Activity 调用 Activity 时出现 StackOverflowError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9651879/