[ Dejan tf @ 08.07.2015. 14:26 ] @
Potrebna mi je pomoc oko vracanja unazad (BACK )u aplikaciji. Imam npr. tri klase KupciActivity, KupciFragment, KupciDetalj.. Iz KupciDetalj mi vraca undo na KupciFragment i tu radim sa fragmentima. Medjutim na pocetnoj formi (GLAVNAFORMA) posle logovanja imam formu gde mi se nalaze ikonice za kupce, artikle, izvode, rabate..

Kilknem na kupca idem preko intenta u KupciActivity, pa iz njega direktno na KupciFragment..Medjutim kada radim back iz KupciFragment, on preskace formu (GLAVNAFORMA) i ide na logovanje. Kako da resim ovaj problem.

Evo deo koda
GlavnaForma.java

Code:


    protected void onCreate(Bundle savedInstanceState ) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.glavnaforma);
        
        
        //set grid view item
        Bitmap homeIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.home);
        Bitmap userIcon = BitmapFactory.decodeResource(this.getResources(), R.drawable.personal);
        
        gridArray.add(new Item(homeIcon,"Pregled artikala"));
        gridArray.add(new Item(userIcon,"Pregled kupaca"));
        gridArray.add(new Item(homeIcon,"Pregled dobavljaca"));
        gridArray.add(new Item(userIcon,"Izvodi"));
        gridArray.add(new Item(homeIcon,"Chat"));
        gridArray.add(new Item(userIcon,"Google Mapa"));
        
        
        
        
        
        gridView = (GridView) findViewById(R.id.gridView1);
        customGridAdapter = new CustomGridViewAdapter(this, R.layout.rowgrid, gridArray );
        gridView.setAdapter(customGridAdapter);
    
        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                
                // TODO Auto-generated method stub
                Item item = (Item) parent.getItemAtPosition(position);
                String title=item.getTitle();
                Intent inten = getIntent();
                String username=inten.getExtras().getString("username");
                String password=inten.getExtras().getString("password");
                if(title.equals("Pregled artikala")){
                    
                    
                    new SlanjePodatka1().execute(username,password);
                    
                    
                }else if(title.equals("Pregled kupaca")){
                    
                    new SlanjePrikazKupaca().execute(username,password);
                    
                }else if(title.equals("Izvodi")){
                    
                    new SlanjePrikazIzvoda().execute(username,password);
                    
                }else if(title.equals("Chat")){
                    
                    new SlanjePrikazZeljka().execute();
                    
                }
                
                
                
            }




Klikom npr. na izvode preko webservisa pribavljam pin , kada pribavim pin iz udaljene baze ja idem tada u IzvodiActivity1


Code:

Intent i12 = new Intent(getApplicationContext(), IzvodiActivity1.class);//ovde vrati PrikazIzvoda
                     
                      i12.putExtra("username", username);
                      i12.putExtra("password", password);
                      i12.putExtra("pin", pin);
                      startActivity(i12);


Tu sada dolaze fragmenti

Code:

protected void onCreate(Bundle arg0) {
        // TODO Auto-generated method stub
        setContentView(R.layout.f_fragment_radni_layout);
        Log.e("Postavljena vrednost","da");

        super.onCreate(arg0);

        Intent intent = this.getIntent();
        
        //String pin=intent.getStringExtra("pin");
        

        Bundle element = getIntent().getExtras();

        String username = element.getString("username");

        String password = element.getString("password");

        String pin = element.getString("pin");
        Log.e("pin","pin"+pin);

        element.putString("username", username);

        element.putString("password", password);

        element.putString("pin", pin);
        Log.e("element","element"+element);

        Fragment izvodifragment = new IzvodiFragment1();

        izvodifragment.setArguments(element);

        FragmentTransaction transaction = getSupportFragmentManager()
                .beginTransaction();

        transaction.replace(R.id.f_fragment_radni_layout, izvodifragment);

        transaction.commit();
    }



Pa nakon toga imam IzvodiFragment gde u svoj spiner ucitavam sve kupce, datume u txt polja..

I ako bih uradio back, on bi mi preskocio glavnu formu i otisao ponovo na logovanje..
[ Java Beograd @ 08.07.2015. 15:04 ] @
Malo ti je konfuzan post. I preopširan.

Kao prvo, koliko vidim iz pitanja, još nisi raščistio šta je Activity, a šta je Fragment.

Navigacija o kojoj pričaš, u principu, dešava se između Activity-ja. Back dugme, ako ne overriduješ onBack() vraća prethodni Activity is steka.

Šta nasleđuje KupciDetalj ? To je osnovno pitanje.

Generalni, uopšteni odgovor bi bio: overriduj onBack() i tamo startuj Activity koji želiš. U zavisnosti od toga šta želiš / treba da postigneš, postavi odgovarajući Intent Flag

Dobri linkovi:
http://developer.android.com/g...ents/tasks-and-back-stack.html
http://developer.android.com/t...nting-navigation/temporal.html

[ Dejan tf @ 08.07.2015. 22:39 ] @
Hvala na odgovoru.

Fragmeti su vise manjih aktivnosti. Potrudicu se da budem jasni.

Imam Glavnu formu odnosno Activity, klikom na neku aktivnost npr. Kupce

prikazujem sve kupce u listi (to se desava u klasi KupciFtagment), klikom na nekog kupca prikazujem

detalje za tog kupca (pib, maticni broj, dugovanja) to radim sa klasom KupciDetalj. Back mi radi kada sam na detalju nekog kupca, kada se vracam na prikaz svih kupaca, ali kada zelim da se vratim iz prikaza svih kupaca na glavnu formu

preskace mi glavnu formu i vraca me na logovanje.
Znaci imam glavnu formu, iz koje biram sta zelim da uradim
(Prikaz Kupaca, Izvoda, Artikala, Rabata, Chat...
GlavnaForma nasledjuje Activity,
KupciActivity nasledjuje klasu FragmentActivity,
KupciFtgment nasledjujeFragment,
KupciDetalj nasledjuje Fragment.

Hvala jos jednom na odgovoru.
[ Java Beograd @ 09.07.2015. 08:08 ] @
Čekaj, polako.

Ostavi fragmente na miru. Bitne su Activity. Kojim redosledom se startuju Activity ? Koje

Da li je Login Activity prvi ? Pa onda GlavnaForma. I onda KupciActivity ? Jel ima još neki Activity ?

Da li si overridovao onBackPressed() u KupciActivity (koja je FragmentActivity)


[ Dejan tf @ 09.07.2015. 08:41 ] @

Prvo ide Login Activity, pa Glavna Forma Activity pa onda KupciActivity..Nisam overridovao onBackPressed()..
[ Java Beograd @ 09.07.2015. 09:31 ] @
... i onda u KupciActivity, prikazuješ ovaj ili onaj fragment, jel tako ?

Elem, vidi, mislim da željenu funkcionalnost na onBack trebalo da implementiraš u KupciActivity (koja je FragmentActvity )

Dakle overriduj onBackPressed()
[ Dejan tf @ 09.07.2015. 09:38 ] @
Da onda u KupciActivity prikazujem fragmente..

Hvala puno na odgovorima ..
[ Dejan tf @ 09.07.2015. 10:25 ] @
Resenje:

U KupciActivity postavite sledeci kod:

Code:


@Override
    public void onBackPressed() {
       
               Intent intent = new Intent(getApplicationContext(),GlavnaForma.class);
               intent.putExtra("username", username);
               intent.putExtra("password",password);
               intent.putExtra("pin",pin);
               
               Toast.makeText(KupciActivity.this,
                       "Pritisnite BACK za izlaz",
                       Toast.LENGTH_LONG).show();
                startActivity(intent);
    }