Activity verlassen mit back

  • Antworten:4
Hauke Schrills
  • Forum-Beiträge: 67

21.07.2017, 19:19:55 via Website

Hallo Leute

Ich rufe eine neue Activity auf

 intent = new Intent(Tische_besetzen.this, Tische_besetzenErgebnis.class);
                intent.putStringArrayListExtra("tischliste", t_liste);
                startActivity(intent);

in dieser neuen Activity insatlliere ich ein Listview , wie ich es schon viele Male gemacht
habe. Nun kann ich diese aber nicht mehr mit dem "Back" button verlassen.
Keine Ahnung woran das liegen könnte . Vielleicht könnt Ihr mir helfen.

Vielen Dank

Gruß Hauke

PS logMonitor nach der Back Taste:

    D/ViewRootImpl: ViewPostImeInputStage processKey 0
 D/ViewRootImpl: ViewPostImeInputStage processKey 1
 W/ResourcesManager: getTopLevelResources: /data/app/stalort.de.t_schocker-2/base.apk / 1.0 running in stalort.de.t_schocker rsrc of package null
 D/AbsListView: Get MotionRecognitionManager
 E/MotionRecognitionManager: mSContextService = android.hardware.scontext.ISContextService$Stub$Proxy@66d628
 E/MotionRecognitionManager: motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@bf98f41
 E/MotionRecognitionManager: motionService = com.samsung.android.motion.IMotionRecognitionService$Stub$Proxy@bf98f41
 D/SecWifiDisplayUtil: Metadata value : none
D/ViewRootImpl: #1 mView = com.android.internal.policy.PhoneWindow$DecorView{686f227 I.E...... R.....ID 0,0-0,0}
 W/DisplayListCanvas: DisplayListCanvas is started on unbinded RenderNode (without mOwningView)
 D/ViewRootImpl: MSG_RESIZED_REPORT: ci=Rect(0, 72 - 0, 0) vi=Rect(0, 72 - 0, 0) or=1
 I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@2dfce6 time:126694474
 #3 mView = null

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

21.07.2017, 19:24:26 via Website

Hallo Hauke,

Hast du in deiner neuen Activity irgendwie das onBackPressed überschrieben?
Nomalerweise funktioniert der Back immer solange du den nicht per Code deaktivierst.

LG Pascal //It's not a bug, it's a feature. :) ;)

swa00

Antworten
Hauke Schrills
  • Forum-Beiträge: 67

21.07.2017, 19:42:52 via Website

Hallo

Nein habe ich nicht.
Ist nur ein arralist übergeben worden und dann alles für eine einfache listview.
Hab ich schon 100 mal gemacht. Aber manchmal sieht man den Wald vor lauter Bäumen nicht mehr.

Antworten
swa00
  • Forum-Beiträge: 3.704

21.07.2017, 19:50:07 via Website

Hallo Hauke,

wie wärs denn mal mit dem Source der Activity, vielleicht sehen wir ja was ... :-)

Liebe Grüße - Stefan
[ App - Entwicklung ]

Antworten
Hauke Schrills
  • Forum-Beiträge: 67

22.07.2017, 14:38:30 via Website

Vielen Dank für Eure Antworten
OK hier der Source Code:

public class Tische_besetzenErgebnis extends AppCompatActivity {

    String[] strTischListe;
    ListView vList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tische_besetzen_ergebnis);

// ArrayList übernehmen
        ArrayList<String> T_list =  getIntent().getStringArrayListExtra("tischliste");
// Array Tischnamen deklarieren 
        strTischListe = new String[T_list.size()+1];
        Integer t_tische = anzahlTische(T_list.size());
        tischNummer(t_tische, T_list.size());
// Listview
        vList = (ListView) findViewById(R.id.lv_TischErgebnis);

        ArrayAdapter<String> adapter = new myListAdapter(this,T_list);

        vList.setAdapter(adapter);

        vList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            }
        });
    }

    private void tischNummer(Integer t_tische, Integer t_size) {
.... Berechnungen...        }



    }

    private Integer anzahlTische(int size) {
        Integer z =1;
        z= (int) (size/3);
        return Math.max(z,1);

    }

    private class myListAdapter extends ArrayAdapter<String> {
        public myListAdapter(Tische_besetzenErgebnis tische_besetzenErgebnis, ArrayList<String> t_list) {
            super(tische_besetzenErgebnis,0,t_list);
        }

        @NonNull
        @Override
        public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {

            if (convertView == null) {
                convertView = LayoutInflater.from(getContext()).inflate(R.layout.tisch_ergebnis_item, parent, false);
            }

            String t_name = getItem(position);

            ((TextView) convertView.findViewById(R.id.tv_tisch_erg)).setText(strTischListe[position+1]);
            ((TextView) convertView.findViewById(R.id.tv_sp_erg)).setText(t_name);

            return convertView;
        }
    }
}

Und der Adapter:

public class TischAdapter extends ArrayAdapter<Spieler> {

    Activity activity;
    Context mContext;
    ArrayList<Spieler> spl;
    LayoutInflater inflater;

    private static class ViewHolder {
        TextView txtName;
        CheckBox checkBox;
    }


    public TischAdapter(ArrayList<Spieler> spl, Context context) {
        super(context,R.layout.tisch_view_item,spl);
        this.spl = spl;
        this.mContext = context;
    }

    @Override
    public int getCount() {

        return spl.size();
    }

    @Override
    public Spieler getItem(int position) {

        return spl.get(position);
    }

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

    @Override
    public View getView(int position, View convertView, @NonNull ViewGroup parent) {

        ViewHolder holder;
        final View result;

        if (convertView == null){
            holder = new ViewHolder();
            convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.tisch_view_item, parent, false);

            holder.txtName = (TextView) convertView.findViewById(R.id.tv_Spieler);
            holder.checkBox = (CheckBox) convertView.findViewById(R.id.cb_anwesend);

            result = convertView;
            convertView.setTag(holder);
        }
        else {
            holder = (ViewHolder) convertView.getTag();
            result = convertView;
        }

            Spieler item = (Spieler) getItem(position);

//Log.i(">>>>>>>>>>>>>>>>>>>>>",item.vollerName());
            holder.txtName.setText(item.vollerName());
            holder.checkBox.setChecked(item.isChecked());


        return result;
    }

    public void updateRecords(ArrayList<Spieler> sp){
        this.spl = spl;
        notifyDataSetChanged();
    }


}

Antworten