2017-04-18 7 views
0

ich hoffe, ich habe es nicht vermasselt! Aber ich habe erstellt und App und habe es gerade getan, aber wenn ich den Zurück-Knopf klicke, schließt es die App. Ich erkenne jetzt, dass ich nur die Ansicht meiner Hauptaktivität ändere, anstatt separate Aktivitäten mit Absicht zu starten. Die App verfügt über 3 Tasten zum Laden von 3 verschiedenen "Ansichten" (einfach, mittel, schwer), die jeweils mit einer Reihe von Bildern gefüllt sind. Ich poste etwas Code, aber nicht sicher, was benötigt wird. sollte ich die Zurück-Schaltfläche überschreiben, um zur MainActivity-Ansicht zurückzukehren? nicht sicher, der beste Weg, um das zu beheben. dankezurück Knopf mit Bildadapter (Basisadapter)

public void onClick(View v) { 
    switch (v.getId()){ 
     case R.id.btnEasy: 

      creatArray(); 
      btnEasy.setVisibility(View.INVISIBLE); //hides button on the second activity 
      btnMed.setVisibility(View.INVISIBLE); 
      btnHard.setVisibility(View.INVISIBLE); 
      btnHome.setVisibility(View.VISIBLE); 
      btnReset.setVisibility(View.VISIBLE); 
      btnFloat.setVisibility(View.INVISIBLE); 

      grid=(GridView)findViewById(R.id.grid); //grid is @id of grid in MainActivity 
      grid.setVisibility(View.VISIBLE); 

      EasyGridAdapter adapter = new EasyGridAdapter(MainActivity.this, randomPics, overlay); //have to add all images (arrays here) references arrays above 
      grid.setAdapter(adapter); 



      break; 




public class EasyGridAdapter extends BaseAdapter { 
private int[] easyPics; 
private int[] overlayPic; //used for overlay ...this is just created here 

Context myContext; 

String pos0,pos1, pos2, pos3, pos4, pos5, pos6, pos7, pos8; //for scoring game 




public class Holder 
{ 
    RelativeLayout rlParent; //main layout (custom_easy.xml) 
    ImageView iv; //for images (grid) main ones 
    ImageView ol; //for overlay 
} 


public EasyGridAdapter(Context myContext, int easyPics[], int overlayPic[]){ 
    //sets gridadapter to use pics , if had text under pic would need to add after int[] pics 
    // name EasyGridAdapter is name ot the java class 
    this.myContext = myContext; 
    this.easyPics = easyPics; 
    this.overlayPic = overlayPic; 
} 

@Override 
public int getCount() { 
    return easyPics.length; 

} 

@Override 
public Object getItem(int position) { 
    return easyPics[position]; //worked with just easypics 
    // return position; 

} 

@Override 
public long getItemId(int position) { 
    return position; 
} 

@Override 
public View getView (final int position, View convertView, ViewGroup parent) { 
    View grid = convertView; //grid (not sure if this is the same) is @id of grid on activity main 
    final Holder holder=new Holder(); 
    if (convertView == null){ 

     LayoutInflater inflater = (LayoutInflater) myContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); //think inflates above public EasyGridAdapter 
     grid = inflater.inflate(R.layout.custom_easy, null); 

    } 

    //main view (i think inializing veiw) 
    holder.rlParent = (RelativeLayout) grid.findViewById(R.id.customParent); //customeParent @id set on custom_easy.xml 
    holder.iv = (ImageView) grid.findViewById(R.id.easyPics); //EasyPics is android id name of imageviewer in custom easy xml 
    holder.ol = (ImageView) grid.findViewById(R.id.overlayPic); 



    holder.iv.setImageResource(easyPics[position]); //easypics is the interger from above 
    holder.rlParent.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (position==0) 
      { 

    REMOVED TO SAVE SPACE... 


    holder.ol.setVisibility(View.VISIBLE); 


     } 
    }); 



    return grid; //returns grid which is name of grid on activity_main.xml (with all stuff in it) 



} 

    } 

Antwort

0

ok, ich fand das und es scheint zu arbeiten! Ich hoffe, dass dies jemand anderem hilft.

aber in meiner MainActivity.java habe ich den folgenden Code jetzt hinzugefügt, wenn ich die Zurück-Taste drücke, wird es zum Hauptbildschirm zurückkehren!

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 
    Intent in = new Intent(MainActivity.this,MainActivity.class); 
    startActivity(in); 
    // finish(); 

}