我有一個活動導致我遇到問題。多次按下後退按鈕無法返回活動
問題是,當我輸入活動時,我不能回到前面的 活動,除非我正好按下後退按鈕5次。
該活動是通過列表輸入的,而此列表還有其他幾個具有相同問題的活動。請注意,並非所有人都有 相同的問題。
這是我的Java代碼:
package com.exple.v1;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class MoviesMaingenreActivity extends ActionBarActivity {
LayoutInflater inflater;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
populateListView();
registerClickCallback();
}
private void registerClickCallback() {
ListView list = (ListView)findViewById(R.id.listView1);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent;
switch(position)
{
case 1:
intent = new Intent(MoviesMaingenreActivity.this,MovieActionGenreActivity.class);
startActivity(intent);
break;
case 2:
intent = new Intent(MoviesMaingenreActivity.this,MovieAnimationGenreActivity.class);
startActivity(intent);
break;
case 3:
intent = new Intent(MoviesMaingenreActivity.this,MovieComedyGenreActivity.class);
startActivity(intent);
finish();
case 4:
intent = new Intent(MoviesMaingenreActivity.this,MovieDocumentaryGenreActivity.class);
startActivity(intent);
case 5:
intent = new Intent(MoviesMaingenreActivity.this,MovieHorrorGenreActivity.class);
startActivity(intent);
case 6:
intent = new Intent(MoviesMaingenreActivity.this,MovieDramaGenreActivity.class);
startActivity(intent);
case 7:
intent = new Intent(MoviesMaingenreActivity.this,MovieScifiGenreActivity.class);
startActivity(intent);
break;
default:
break;
}
}
});
}
private void populateListView() {
String[] textz = {"Action","Animation","Komedi","Dokumentär","Skräck","Drama","Sci-fi"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.the_list, textz);
ListView listView = (ListView)findViewById(R.id.listView1);
listView.setAdapter(adapter);
inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View header = inflater.inflate(R.layout.header_movies_maingenres,null);
listView.addHeaderView(header,null,false);
}
}
從案例3至7的情況下出現了問題。
它爲什麼這樣做?
即使調用了'finish()'後,系統仍會繼續處理下一條語句,而在'switch case'結構中'break'語句必須避免其他情況繼續執行 –