我已调试并发现在从主活动启动的活动回来后,控制流从未到达主要活动中的OnClick()
方法。
怀疑这与暂停'或者'恢复'状态。
换句话说,
主要活动是A.和从A be B发起的活动。
所以,从A i开始并在B上工作。当我返回A(使用硬件按钮' back')时,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;
}
}
答案 0 :(得分:0)
android:onClick="Click"
将上述代码放入xml文件中,然后在您的活动中编写该函数 例如
public void Click(View v)
{
// do something
}
或者你可以这样做
button=(button) findViewById(R.id.btn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
答案 1 :(得分:0)
Try this code
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent myList = new Intent(this, List.class);
myList.putExtra("passList", passList);
hasRanOnce = Boolean.TRUE;
startActivity(myList);
}
});