デバッグしたところ、メイン アクティビティから起動されたアクティビティから戻った後、制御フローがメイン アクティビティOnClick()
のメソッドに到達しないことがわかりました。
これが「一時停止」または「再開」状態に関係しているのではないかと疑っています。
つまり、メイン アクティビティは A であり、A から起動されたアクティビティは B です。したがって、A から起動して B で作業します。(ハードウェア ボタン「戻る」を使用して)A に戻ると、onClick
関数は呼び出されないようです。
プライバシー上の理由から、コンパイルするとエラーになる以下のコードをいくつか削除しましたが、実際のコードではアクティビティ B と listviews i call run fine を呼び出します。
助けてください!:)
私のコード:
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;
}
}