Java 安卓后退按钮将我带回到同一个视图,但类似乎有变化

Java 安卓后退按钮将我带回到同一个视图,但类似乎有变化,java,android,back-button,Java,Android,Back Button,我开发了我的第一个应用程序,现在遇到了一些问题。 我试图在网上找到解决方案,但没有。也许有人能帮我 我的应用程序中有不同的活动…通过设置菜单中的onClick调用的活动,它会正确打开,但如果我按下后退按钮,它仍然显示相同的活动视图,并且仅显示上一个活动的菜单。活动和工作是菜单的按钮,但不是主视图中显示的按钮 public class MyActivity extends Activity { DBAdapter db = new DBAdapter(this); @Override prote

我开发了我的第一个应用程序,现在遇到了一些问题。 我试图在网上找到解决方案,但没有。也许有人能帮我

我的应用程序中有不同的活动…通过设置菜单中的onClick调用的活动,它会正确打开,但如果我按下后退按钮,它仍然显示相同的活动视图,并且仅显示上一个活动的菜单。活动和工作是菜单的按钮,但不是主视图中显示的按钮

public class MyActivity extends Activity { 
DBAdapter db = new DBAdapter(this);
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_my);
  /*  if (savedInstanceState == null) {
        getFragmentManager().beginTransaction()
                .add(R.id.container, new PlaceholderFragment())
                .commit();
    }*/
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

    try {
        String destPath = "/data/data/" + getPackageName() + "/databases/WizardDB";
        File f = new File(destPath);
        if (!f.exists()) {
            CopyDB(getBaseContext().getAssets().open("WizardDB"),
                    new FileOutputStream(destPath));
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    new LongOperation().execute("");
}
以及通过菜单打开的活动

       package com.example.frank.myapplication;    
        import android.app.Activity;
        import android.content.Intent;
        import android.database.Cursor;
        import android.os.Bundle;
        import android.view.KeyEvent;
        import android.view.Menu;
        import android.view.MenuItem;
        import android.view.View;
        import android.view.WindowManager;
        import android.widget.AdapterView;
        import android.widget.ArrayAdapter;
        import android.widget.Button;
        import android.widget.EditText;
        import android.widget.ListAdapter;
        import android.widget.ListView;
        import android.widget.TextView;
        import android.widget.Toast;    
        import org.w3c.dom.Text;    
        import java.util.ArrayList;
        import java.util.List;

public class showgames extends Activity {
     private List<String> listSpiel_Id;
     DBAdapter db = new DBAdapter(this);

        @Override

        protected void onCreate(Bundle savedInstanceState) {
            getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
            super.onCreate(savedInstanceState);
            setContentView(R.layout.showgames);
            Intent EingabeName = getIntent();
           // Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

            String[] favoriteTVShows={};
            List<String> list = new ArrayList<String>();
            listSpiel_Id = new ArrayList<String>();
            db.open();
            Cursor c=db.getAllRecords();
            if (c.moveToFirst())
            {
                do {
                    String Beendet="";
                    String Ort="";
                    if (c.getInt(9)==1) {Beendet=getString(R.string.beendet);} else     {Beendet=getString(R.string.offen);}

                    if (c.getString(10) != null && !c.getString(10).isEmpty()) {
                        Ort=c.getString(10)+" - ";
                    }
                    //android.text.format.DateFormat.format("dd.MM.yyyy- hh:mm", c.getLong(2));
                    String Spiel=android.text.format.DateFormat.format("dd.M.yy k:mm",c.getLong(2))+" - "+Ort+c.getString(3)+" "+c.getString(4)+" "+c.getString(5)+" "+c.getString(6)+" "+c.getString(7)+" "+c.getString(8)+Beendet;
                    list.add(Spiel);
                    listSpiel_Id.add(c.getString(0));

                } while (c.moveToNext());
            } else {

                TextView Zuruecksetzen1 = (TextView) findViewById(R.id.Spieleanzeigen);
                Zuruecksetzen1.setText(getString(R.string.Spielwaehlenleer));
                Button ButtonLoeschen = (Button) findViewById(R.id.ButtonDatenloeschen);
                ButtonLoeschen.setVisibility(View.INVISIBLE);
            }


            /*String[] favoriteTVShows = {"Pushing Daisies", "Better Off Ted",
                    "Twin Peaks", "Freaks and Geeks", "Orphan Black", "Walking Dead",
                    "Breaking Bad", "The 400", "Alphas", "Life on Mars","Pushing Daisies", "Better Off Ted",
                    "Twin Peaks", "Freaks and Geeks", "Orphan Black", "Walking Dead",
                    "Breaking Bad", "The 400", "Alphas", "Life on Mars"};*/

            // The ListAdapter acts as a bridge between the data and each ListItem
            // You fill the ListView with a ListAdapter. You pass it a context represented by
            // this. A Context provides access to resources you need.
            // android.R.layout.simple_list_item_1 is one of the resources needed.
            // It is a predefined layout provided by Android that stands in as a default

            ListAdapter theAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,
                    list);

            // ListViews display data in a scrollable list
            ListView theListView = (ListView) findViewById(R.id.theListView);

            // Tells the ListView what data to use
            theListView.setAdapter(theAdapter);

            theListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {

                    String tvShowPicked = "You selected " +
                            String.valueOf(adapterView.getItemAtPosition(i));

                  //  Toast.makeText(showgames.this, listSpiel_Id.get(i), Toast.LENGTH_SHORT).show();
                    Intent getNameScreenIntent = new Intent(showgames.this, table.class);
                    getNameScreenIntent.putExtra("Spiel_ID", Long.valueOf(listSpiel_Id.get(i)));
                    db.open();
                    int Spielerzahl=db.getZahlderSpieler(Long.valueOf(listSpiel_Id.get(i)));
                    db.close();
                    ((MyApplication) showgames.this.getApplication()).setSpielerzahl(Spielerzahl);
                    startActivity(getNameScreenIntent);
                }
            });
        //    Toast.makeText(this, "Spiele anzeigen", Toast.LENGTH_LONG).show();
        }

    public void OnClickDatenLoeschen(View view) {
    db.Tabellenleeren();
        Toast.makeText(this, "Alle bisherigen Spiele gelöscht", Toast.LENGTH_LONG).show();
        setContentView(R.layout.activity_my);
        Intent getNameScreenIntent = new Intent(this, MyActivity.class);

        startActivity(getNameScreenIntent);
    }
    }
如果有人能告诉我为什么第一个活动不再出现,那就太好了

你们说的是按下后退按钮,但我并没有看到任何方法的实现

 onKeyDown(int keyCode, KeyEvent event)
因此,请重写此方法,并:

删除此项:

 if (id == R.id.action_showlist) {
 -->>> setContentView(R.layout.showgames);

活动showgames将在onCreate方法上设置布局。

谢谢。删除这些内容视图已经做到了这一点。“后退”按钮现在可以正常工作了。是否有必要/建议使用onKeyDown?onKeyDown。。。是…建议您通知用户他将退出当前活动。。。很高兴我的帖子解决了这个问题:
 onKeyDown(int keyCode, KeyEvent event)
 if (id == R.id.action_showlist) {
 -->>> setContentView(R.layout.showgames);