在模拟器上按返回键,可以成功返回上一个Activity,而在真机上运行同一个程序,当从Activity A进入到Activity B,再进入到Activity C中,当从Activity C按两次返回键回到Activity A时,它会自动跳回到Activity C一次。
这是为什么呢?怎么解决呢?
这是为什么呢?怎么解决呢?
解决方案 »
- 如果滑动屏幕,实现Activity的跳转。
- 关于两个Activity 传值问题
- android 收听音频文件,在线等
- Android实例项目源码 及其开发系列视频教程下载
- 做了2年的Java、2年的.net,这样情况转安卓可以吗?
- 关于cocos2dxActivity监听不到返回健的问题
- 使用ACTION_DATE_CHANGED动态注册广播无法监听系统日期的改变
- andorid studio3.1.2调用虚拟机调试时出现Virtual machine acceleration driver out-of-date
- 安卓开发使用的语言和java语言是什么关系?
- 学生作业求助
- android和j2me能不能蓝牙互连?
- android froyo 编译时alsa出现错误
点两次是双击,还是缓慢的两次? 是doubleOnSnap的实现么? 是Activity C → B→ C→ A 还是CBAC还是CAC
/** Called when the activity is first created. */
private TabHost tabHost;
private String week="1";
private ListView listView;
HashMap<String, String> map; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.csheet);
tabHost = (TabHost) this.findViewById(android.R.id.tabhost);
tabHost.setup();
tabHost.addTab(tabHost.newTabSpec("tab_1")
.setContent(R.id.tab1)
.setIndicator("一",getResources().getDrawable(R.drawable.tab_sel)));
tabHost.addTab(tabHost.newTabSpec("tab_2")
.setContent(R.id.tab2).setIndicator("二",getResources().getDrawable(R.drawable.tab_sel)));
tabHost.addTab(tabHost.newTabSpec("tab_3")
.setContent(R.id.tab3).setIndicator("三",getResources().getDrawable(R.drawable.tab_sel)));
tabHost.addTab(tabHost.newTabSpec("tab_4")
.setContent(R.id.tab4).setIndicator("四",getResources().getDrawable(R.drawable.tab_sel)));
tabHost.addTab(tabHost.newTabSpec("tab_5")
.setContent(R.id.tab5).setIndicator("五",getResources().getDrawable(R.drawable.tab_sel)));
tabHost.addTab(tabHost.newTabSpec("tab_6")
.setContent(R.id.tab6).setIndicator("六",getResources().getDrawable(R.drawable.tab_sel)));
tabHost.addTab(tabHost.newTabSpec("tab_7")
.setContent(R.id.tab7).setIndicator("日",getResources().getDrawable(R.drawable.tab_sel)));
final TabWidget tw = tabHost.getTabWidget();
for (int i = 0; i < tw.getChildCount(); i++) {
TextView textView = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
textView.setTextColor(ClassSheet2.this.getResources().getColor(android.R.color.white));
tw.getChildAt(i).getLayoutParams().height = 50;
tw.getChildAt(i).getLayoutParams().width = 45;
}
tabHost.setCurrentTab(0);
new WSAsyncTask().execute();
tabHost.setOnTabChangedListener(new OnTabChangeListener() {
@Override
public void onTabChanged(String tabId) {
// TODO Auto-generated method stub
System.out.println(tabId);
if(tabId=="tab_1"){
week="1";
}else if(tabId=="tab_2"){
week="2";
}else if(tabId=="tab_3"){
week="3";
}else if(tabId=="tab_4"){
week="4";
}else if(tabId=="tab_5"){
week="5";
}else if(tabId=="tab_6"){
week="6";
}else if(tabId=="tab_7"){
week="7";
}
new WSAsyncTask().execute();
}
});
}
class WSAsyncTask extends AsyncTask<Object, Object, Object>
{
ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String,String>>();
String result = "";
@Override
protected Object doInBackground(Object... params)
{
try
{
String serviceUrl = "http://"+FzxyLogin.ip+"/GuestWebService.asmx?WSDL";
String methodName = "SearchClassSyllabus";
SoapObject request = new SoapObject("http://tempuri.org/",methodName);
request.addProperty("termId", getIntent().getStringExtra("termId"));
request.addProperty("className", getIntent().getStringExtra("className"));
request.addProperty("week", week);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = request;
envelope.dotNet=true;
(new MarshalBase64()).register(envelope);
HttpTransportSE ht = new HttpTransportSE(serviceUrl);
ht.debug=true;
ht.call("http://tempuri.org/"+methodName, envelope);
if (envelope.getResponse() != null)
{
SoapObject soapObject = (SoapObject) envelope.getResponse();
System.out.println(soapObject.getProperty(1));
int count=soapObject.getPropertyCount();
System.out.println(count);
result+=soapObject.toString();
for(int i=0;i<count;i++){
String str=soapObject.getProperty(i).toString();
String[] sss=str.split("=|;");
map = new HashMap<String, String>();
sss[1]=sss[1]+"-"+(Integer.parseInt(sss[1])+1);
map.put("Jieci", sss[1]);
map.put("CourseName", sss[3]);
map.put("Teacher", sss[5]);
map.put("ClassRoom", sss[7]);
map.put("Weekday", sss[9]);
list.add(map);
result+=(map.get("Jieci")+map.get("CourseName")+map.get("ClassRoom")
+map.get("Teacher")+map.get("Weekday")+map.get("Xingqi")+"\n");
System.out.println(result);
}
if(week=="1"){
listView=(ListView) findViewById(R.id.listView1);
listView.post(new Runnable() {
@Override
public void run() {
SimpleAdapter simpleAdapter = new SimpleAdapter(ClassSheet2.this, list,
R.layout.csoutput,new String[] { "Jieci", "CourseName","ClassRoom",
"Teacher", "Weekday" }, new int[] { R.id.Jieci,R.id.CourseName,
R.id.ClassRoom,R.id.Teacher, R.id.Weekday});
listView.setAdapter(simpleAdapter);
}
});
}
if(week=="2"){
listView=(ListView) findViewById(R.id.listView2);
listView.post(new Runnable() {
@Override
public void run() {
SimpleAdapter simpleAdapter = new SimpleAdapter(ClassSheet2.this, list,
R.layout.csoutput,new String[] { "Jieci", "CourseName","ClassRoom",
"Teacher", "Weekday","Xingqi" }, new int[] { R.id.Jieci,R.id.CourseName,
R.id.ClassRoom,R.id.Teacher, R.id.Weekday });
listView.setAdapter(simpleAdapter);
}
});
}
if(week=="3"){
listView=(ListView) findViewById(R.id.listView3);
listView.post(new Runnable() {
@Override
public void run() {
SimpleAdapter simpleAdapter = new SimpleAdapter(ClassSheet2.this, list,
R.layout.csoutput,new String[] { "Jieci", "CourseName","ClassRoom",
"Teacher", "Weekday" }, new int[] { R.id.Jieci,R.id.CourseName,
R.id.ClassRoom,R.id.Teacher, R.id.Weekday});
listView.setAdapter(simpleAdapter);
}
});
}
if(week=="4"){
listView=(ListView) findViewById(R.id.listView4);
listView.post(new Runnable() {
@Override
public void run() {
SimpleAdapter simpleAdapter = new SimpleAdapter(ClassSheet2.this, list,
R.layout.csoutput,new String[] { "Jieci", "CourseName","ClassRoom",
"Teacher", "Weekday"}, new int[] { R.id.Jieci,R.id.CourseName,
R.id.ClassRoom,R.id.Teacher, R.id.Weekday});
listView.setAdapter(simpleAdapter);
}
});
}
if(week=="5"){
listView=(ListView) findViewById(R.id.listView5);
listView.post(new Runnable() {
@Override
public void run() {
SimpleAdapter simpleAdapter = new SimpleAdapter(ClassSheet2.this, list,
R.layout.csoutput,new String[] { "Jieci", "CourseName","ClassRoom",
"Teacher", "Weekday"}, new int[] { R.id.Jieci,R.id.CourseName,
R.id.ClassRoom,R.id.Teacher, R.id.Weekday});
listView.setAdapter(simpleAdapter);
}
});
}
if(week=="6"){
listView=(ListView) findViewById(R.id.listView6);
listView.post(new Runnable() {
@Override
public void run() {
SimpleAdapter simpleAdapter = new SimpleAdapter(ClassSheet2.this, list,
R.layout.csoutput,new String[] { "Jieci", "CourseName","ClassRoom",
"Teacher", "Weekday"}, new int[] { R.id.Jieci,R.id.CourseName,
R.id.ClassRoom,R.id.Teacher, R.id.Weekday});
listView.setAdapter(simpleAdapter);
}
});
}
if(week=="7"){
listView=(ListView) findViewById(R.id.listView7);
listView.post(new Runnable() {
@Override
public void run() {
SimpleAdapter simpleAdapter = new SimpleAdapter(ClassSheet2.this, list,
R.layout.csoutput,new String[] { "Jieci", "CourseName","ClassRoom",
"Teacher", "Weekday" }, new int[] { R.id.Jieci,R.id.CourseName,
R.id.ClassRoom,R.id.Teacher, R.id.Weekday });
listView.setAdapter(simpleAdapter);
}
});
}
}
else
{
result = "无此班级.";
}
}
catch (Exception e)
{
result = "调用WebService错误.";
e.printStackTrace();
}
return null;
}
}
}
这是Activity C,没什么特殊处理呀。
你有重写对BACK键的处理么
第一次点BACK,从C到B毫无疑问,第二次点BACK,实际上不期望返回上一个acitvity C (从C BACK回来的),而是系统任务栈里的上一个 A。
正常情况下是不用的
误跳到C 如果不是你重写了BACK,那么就是对任务栈干扰操作