Autore Topic: Activity Group  (Letto 1175 volte)

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Activity Group
« il: 30 Agosto 2010, 09:57:03 CEST »
0
sono nel panico, mi servirebbe creare un activitygroup per mostrare simultaneamente due activity.
il modulo di ricerca e una ListActivity dei risultati, qualcuno saprebbe spiegarmi come funziona. xkè googlando ho trovato più domande e risposte del tipo ho anche io lo stesso problema. che risposte con soluzioni comprensibili.

grazie

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:Activity Group
« Risposta #1 il: 30 Agosto 2010, 10:13:47 CEST »
0
se non serve usare l'activityGroup meglio, ma il risultato che cerco è qualcosa del genere.

non  mi servono ne suggerimenti ne altro , la lista si deve popolare solo una volta premuto il tasto search prendendo il risultato con una get di un file JSON quindi si dovrebbe semplificare il tutto.

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Activity Group
« Risposta #2 il: 30 Agosto 2010, 11:56:15 CEST »
0
e perchè ti dovrebbe servire un activity group?

qui puoi fare una activity sola con:

una edittext un bottone e una listview

Offline blackgin

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1387
  • Respect: +164
    • Google+
    • blackgins
    • blackginsoft
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Nexus
  • Sistema operativo:
    Mac OSX 10.8
Re:Activity Group
« Risposta #3 il: 30 Agosto 2010, 14:05:03 CEST »
0
Quello che hai postato é lo screenshot di un programma che fa uso delle api di ricerca integrate, che android mette a disposizione per tutti:
Quick Search Box | Android Developers
Postate il LogCat LogCat LogCat LogCat LogCat

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:Activity Group
« Risposta #4 il: 30 Agosto 2010, 14:11:44 CEST »
0
si lo so ma non è propriamente quello che mi serve, quello di cui ho bisogno è di una edittext che prende una query che attraverso una get http riceve dei dati da un "mio" server , non mi serve la ricerca di google , sul server ho i "miei" algoritmi. mi serviva solo una cosa simile xkè su schermi QVGA avere sempre una tabactivity e una edittext ruberebbe troppo posto per la listview

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Activity Group
« Risposta #5 il: 30 Agosto 2010, 14:15:17 CEST »
0
Quello che hai postato é lo screenshot di un programma che fa uso delle api di ricerca integrate, che android mette a disposizione per tutti:
Quick Search Box | Android Developers

già, ma se deve collegarsi ad un servizio, ricevere un file json e farne il parsing, probabilmente come prima implementazione è piu semplice farlo "manualmente".

poi se si vuole raffinare il tutto, si può anche pensare ad una qsb. IMO


Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:Activity Group
« Risposta #6 il: 30 Agosto 2010, 14:20:12 CEST »
0
ho anche dei problemi con l'impostare il layout... non so come farlo. avete delle idee/consigli magari utilizzando un relativelayout per mettere una TextEdit un Bottone e una ListView? ho provato con DroidDraw ma fa pena fai cose che forse vanno sull emulatore HVGA ma cambi risoluzione o dispositivo non si capisce più un cavolo

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:Activity Group
« Risposta #7 il: 30 Agosto 2010, 15:19:49 CEST »
0
nel LinearLayout come si fa a dire, "continua fino alla fine dello schermo"

vincenzodicicco

  • Visitatore
Re:Activity Group
« Risposta #8 il: 30 Agosto 2010, 15:28:01 CEST »
0
nel LinearLayout come si fa a dire, "continua fino alla fine dello schermo"
Hem.. penso intendi impostare il layout_width ed il layout_height come "fill_parent". :-)

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:Activity Group
« Risposta #9 il: 30 Agosto 2010, 15:30:14 CEST »
0
si lo so ma va a sovrapporsi al editText... mah

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Activity Group
« Risposta #10 il: 30 Agosto 2010, 16:17:42 CEST »
0
aggiungi
Codice (XML): [Seleziona]
android:layout_weight="1"
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline DX89B

  • Utente junior
  • **
  • Post: 121
  • Respect: +1
    • Mostra profilo
  • Dispositivo Android:
    HTC Desire
  • Play Store ID:
    Daniele Bonadiman
  • Sistema operativo:
    Mac OS X 10.6
Re:Activity Group
« Risposta #11 il: 30 Agosto 2010, 16:32:21 CEST »
0
fatto , ora il problema è un altro, quando faccio la onItemClickListener della ListView mi salva un id del dataset diverso da quello effettivo
se ci capite qualcosa date un occhio

non fa ancora effettivamente la ricerca sto solo impostando il layout
se vi serve il codice dei tre layout usati in questo progetto lo posto in seguito

Codice (Java): [Seleziona]
package org.liquidjournal;

import java.util.ArrayList;
import java.util.Iterator;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;

import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TextView.OnEditorActionListener;

public class Search extends Activity{
        ArrayList<Resource> resources = new ArrayList<Resource>();
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.search);
                final EditText ed = (EditText) findViewById(R.id.searchbox);
                 for (int i = 0 ; i<10 ; i++){
                         Resource resource = new Resource(i,"Risorsa","http://www.prova.it/"+i,"io");
                        resources.add(resource);
                         }
                 final ResourceAdapter adapter =new ResourceAdapter(this, R.layout.resource, resources);
                  ListView  lv = ((ListView)findViewById(R.id.viewsearch));
                 lv.setAdapter(adapter);
                 lv.setTextFilterEnabled(true);  
                 lv.setOnItemClickListener(new OnItemClickListener() {

                                @Override
                                public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                                long arg3) {
                                        if (!adapter.getItem(arg2).expanded){
                                                setExpanded(arg2);
                                                adapter.notifyDataSetChanged();
                                                }
                                                else
                                                {
                                                        Intent viewIntent = new Intent("android.intent.action.VIEW", Uri.parse(adapter.getItem(arg2).uri));
                                                        startActivity(viewIntent);
                                                }
                                }
                          });
                 
                ed.setOnEditorActionListener(new OnEditorActionListener() {

                @Override
                public boolean onEditorAction(TextView v, int actionId,
                        KeyEvent event) {
                    if (event != null&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) {
                        InputMethodManager in = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                        in.hideSoftInputFromWindow(ed
                                .getApplicationWindowToken(),
                                InputMethodManager.HIDE_NOT_ALWAYS);
                     resources.clear();
                         for (int i = 0 ; i<10 ; i++){
                                 Resource resource = new Resource(i,"Risorsacercata","http://www.prova.it/"+i,"io");
                                resources.add(resource);
                                 }
                        adapter.notifyDataSetChanged();
                     
                    }
                    return false;
                }

                       
            });
               
                         
                         
       
         
         
                 
       
        }
        public void setExpanded(int position){
        Iterator<Resource> itr = resources.iterator();
        while(itr.hasNext()){
                itr.next().expanded=false;
        }
        resources.get(position).expanded = true;
       
    }
       
        }

e questo è l'adapter così vedete anche la "soluzione" al mio problema di ieri http://www.anddev.it/index.php/topic,773.0.html

Codice (Java): [Seleziona]
import java.util.ArrayList;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class ResourceAdapter extends ArrayAdapter<Resource>{

    private ArrayList<Resource> items;

    public ResourceAdapter(Context context, int textViewResourceId, ArrayList<Resource> items) {
            super(context, textViewResourceId, items);
            this.items = items;
    }
 
   

    public View getView(int position, View convertView, ViewGroup parent) {
            View v = convertView;
            Resource o = items.get(position);
            if (o != null) {
            if (v == null) {
                LayoutInflater vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                if (!o.expanded)
                v = vi.inflate(R.layout.resource, null);
                else
                v = vi.inflate(R.layout.resourceextended, null);       
               
            }
           
         
            if (!o.expanded){
                    TextView tt = (TextView) v.findViewById(R.id.name);
                    TextView bt = (TextView) v.findViewById(R.id.uri);
                   
                   
                    if (tt != null) {
                          tt.setText(o.name);                            }
                    if(bt != null){
                       
                        bt.setText(o.uri);
                       
                    }
             }
            else
            {
                 TextView tt = (TextView) v.findViewById(R.id.name);
                 TextView bt = (TextView) v.findViewById(R.id.uri);
                 TextView at = (TextView) v.findViewById(R.id.author);
                 TextView at2 = (TextView) v.findViewById(R.id.author2);
                 
                 
                 if (tt != null) {
                       tt.setText(o.name);                            }
                 if(bt != null){
                       
                        bt.setText(o.uri);
                   
                 }
                 if(at != null){
                       
                        at.setText(o.author);
                     
                  }
                 if(at2 != null){
                       
                        at2.setText(o.author);
                     
                   }
               
               
            }
            }
            return v;
    }
   

       
}

« Ultima modifica: 30 Agosto 2010, 16:43:12 CEST da DX89B »