Autore Topic: GridLayout modulabile  (Letto 439 volte)

Offline vise950

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 4
  • Sistema operativo:
    winsows 8.1
GridLayout modulabile
« il: 12 Giugno 2014, 14:33:31 CEST »
0
Ciao ragazzi mi serve aiuto per creare un GridLayout modulabile in base alla scelta dell'utente
Devo creare una tabella di 3 colonne e un tot di righe. Le righe vengono scelte con un numberPicker che va da 1 a 10.
Io pensavo di creare la tabella di massime dimensioni 3x10 con vari bottoni e textview e poi far vedere solo fino alla riga selezionata dall'utente. Secondo voi e possibile? Ci sono altri modi?
Grazie

Offline vise950

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 4
  • Sistema operativo:
    winsows 8.1
Re:GridLayout modulabile
« Risposta #1 il: 14 Giugno 2014, 14:56:45 CEST »
0
Nessuno sa aiutarmi??

Inviato dal mio Nexus 4 utilizzando Tapatalk


Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:GridLayout modulabile
« Risposta #2 il: 14 Giugno 2014, 16:32:45 CEST »
0
Io userei una ListView, con layout della riga a tre colonne. In questo modo puoi aggiungere quante righe vuoi.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline vise950

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 4
  • Sistema operativo:
    winsows 8.1
Re:GridLayout modulabile
« Risposta #3 il: 14 Giugno 2014, 21:55:44 CEST »
0
Grazie

Inviato dal mio Nexus 4 utilizzando Tapatalk


Offline vise950

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 4
  • Sistema operativo:
    winsows 8.1
Re:GridLayout modulabile
« Risposta #4 il: 20 Giugno 2014, 21:54:08 CEST »
0
ho usato una listview ora ho associato al click del bottone l'apertura di un timePickerDialog

Codice (Java): [Seleziona]
class OrarioAdapter extends ArrayAdapter<alfa> {

    int resource;
    LayoutInflater inflater;
    int mMinute, mHour;

    public OrarioAdapter(Context context, int resourceId, List<alfa> objects) {
        super(context, resourceId, objects);
        resource = resourceId;
        inflater = LayoutInflater.from(context);
    }

    public View getView(int position, View v, ViewGroup parent) {
        v = inflater.inflate(resource, null);
        alfa a = getItem(position);
        TextView ora = (TextView) v.findViewById(R.id.textOra);
        final Button inizioOra = (Button) v.findViewById(R.id.buttonInizioOra);
        final Button fineOra = (Button) v.findViewById(R.id.buttonFineOra);

        ora.setText(a.getOra());
        inizioOra.setText(a.getInizio());
        fineOra.setText(a.getFine());

        inizioOra.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final Calendar c = Calendar.getInstance();
                mHour = c.get(Calendar.HOUR_OF_DAY);
                mMinute = c.get(Calendar.MINUTE);

                //lancio il TimePicker
                TimePickerDialog tpd = new TimePickerDialog(getContext(),
                        new TimePickerDialog.OnTimeSetListener() {
                            @Override
                            public void onTimeSet(TimePicker timePicker, int Ore, int Minuti) {

                                if (Ore < 10)
                                    inizioOra.setText("0" + Ore + ":" + Minuti);

                                if (Minuti < 10)
                                    inizioOra.setText(Ore + ":0" + Minuti);

                                if (Ore < 10 && Minuti < 10)
                                    inizioOra.setText("0" + Ore + ":0" + Minuti);
                            }
                        }, mHour, mMinute, true
                );//boolean true=24 ore, false=Am/Pm
                tpd.setTitle("Imposta ora");
                tpd.show();

                //Toast.makeText(getContext(),"inizio "+inizioOra.getText(),Toast.LENGTH_SHORT).show();
            }
        });

        fineOra.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(getContext(),"fine "+fineOra.getText(),Toast.LENGTH_SHORT).show();
            }
        });
        return v;
    }
}

questo però da un errore sul tpd.show()
Codice: [Seleziona]
06-20 15:47:57.640    2408-2408/com.nicola.diarioscolastico E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.nicola.diarioscolastico, PID: 2408
    android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
            at android.view.ViewRootImpl.setView(ViewRootImpl.java:540)
            at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:259)
            at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
            at android.app.Dialog.show(Dialog.java:286)
            at com.nicola.diarioscolastico.OrarioAdapter$1.onClick(ImpostOrario.java:264)
            at android.view.View.performClick(View.java:4438)
            at android.view.View$PerformClick.run(View.java:18422)
            at android.os.Handler.handleCallback(Handler.java:733)
            at android.os.Handler.dispatchMessage(Handler.java:95)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)

poi credo che così facendo tutti i bottoni inizioOra verranno settati sullo stesso orario,io invece devo farlo diverso per ogni riga (che contiene due bottoni inizio e fine ora). Cosa dovrei usare?