我已经调试过,发现从主活动启动的活动返回后,控制流永远不会到达主活动OnClick()
中的方法。
怀疑这与“暂停”或“恢复”状态有关。
换句话说,主要活动是 A。从 A 启动的活动是 B。所以,我从 A 启动并在 B 上工作。当我返回 A(使用硬件按钮“返回”)时,onClick
似乎没有调用函数。
出于隐私目的,我删除了下面显示的一些代码,如果编译会出错,但在我的实际代码中,我调用的活动 B 和列表视图运行良好。
请帮忙!:)
我的代码:
import java.io.Serializable;
import java.util.ArrayList;
import org.json.JSONObject;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
public class Main extends Activity implements Serializable,
OnClickListener {
// fetch data in form of string from the url
public String InternetData;
public static ArrayList<String> List;
public static Boolean hasRanOnce;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Initialize();
// begin AsyncTask doInBackground
RequestData();
}
private void Initialize() {
hasRanOnce = Boolean.FALSE;
List = new ArrayList<String>();
}
private void RequestData() {
//string is a url, I removed it from here
GetMethodEx requestObject = new GetMethodEx();
requestObject.setActivity(this);
requestObject.execute(string);
}
// function called by OnPostExecute of GetMethodEx
public void BuildNodes() {
try {
// create JSON objects
rootNode = rootNode.createNode(jObject);
passList.add(rootNode);
} catch (Exception e) {
e.printStackTrace();
}
}
protected void StartList() {
// start new activity for publishing the results as a list
Intent myList = new Intent(this, List.class);
myList.putExtra("passList", passList);
hasRanOnce = Boolean.TRUE;
startActivity(myList);
}
///##我可能面临的问题
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.Display:
StartList();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_menu, menu);
return true;
}
}