java - 尝试从另一个 Activity 调用 Activity 时出现 StackOverflowError

标签 java android

我正在尝试开发一个小型应用程序 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/

相关文章:

java - 发送 JSON 到服务器

java - 检测对象类型然后相应地转换它?

java - Hadoop 2.0 JAR文件

java - Netty 代理复制流量

java - 将 BST 从使用 int 更改为使用字符串

android - 按下时使图像按钮发生变化

android - 错误消息 'java.net.SocketException: socket failed: EACCES (Permission denied)'

android - 当我断开 wifi 时,用于检查互联网连接的广播接收器被调用两次

java - 如何删除jtable中的所有行?

android - OnClickListeners 没有持续触发