JavascriptProva

lunedì 27 giugno 2016

Interfaccia per la regolazione degli intervalli di campionamento

Sistemazione di una schermata con spinners per la selezione di intervalli di tempo.
Lo scheletro è questo:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.palestraxml3.Terza" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Intervallo minimo di campionamento" />
    
    <LinearLayout 
        android:id="@+id/frameTimer"
        android:orientation="horizontal"
        android:layout_height="100dp"
        android:layout_width="match_parent"
        android:background="@drawable/shap" >

        <LinearLayout 
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        <TextView    
            android:id="@+id/ore"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ORE" />
        
        <Spinner 
            android:id="@+id/spinnerora1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/ore3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Ciao mondo" />

            <TextView
                android:id="@+id/ore4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Ciao ciccio" />
        </LinearLayout>

    </LinearLayout>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Intervallo minimo di campionamento" />
    <LinearLayout 
        android:id="@+id/frameTimer2"
        android:orientation="horizontal"
        android:layout_height="100dp"
        android:layout_width="match_parent"
        android:background="#FAA" >
       
        <LinearLayout 
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        <TextView    
           
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Ciao mondo" />
        
        <TextView 
            
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Ciao ciccio" />
        
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:orientation="vertical" >

            <TextView
              
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Ciao mondo" />

            <TextView
            
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Ciao ciccio" />
        </LinearLayout>

    </LinearLayout>
    
 

  
</LinearLayout> 
Ora ci costruisco un'interfaccia con gli spinners.

Inizio con la costruzione dell'intervallo minimo.
Questo è il LinearLayout orizzontale superiore:
    <LinearLayout 
        android:id="@+id/frameTimer"
        android:orientation="horizontal"
        android:layout_height="100dp"
        android:layout_width="match_parent"
        android:background="@drawable/shap" >

        <LinearLayout 
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        <TextView    
            android:id="@+id/ore"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ORE" />
        
        <Spinner 
            android:id="@+id/spinnerora1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:orientation="vertical" >

       <TextView
           android:id="@+id/ore3"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:text="Ciao mondo" />

        <Spinner 
            android:id="@+id/spinnerminuti1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />
        </LinearLayout>

    </LinearLayout> 
Ho messo due spinner.
Devo cambiare le etichette che sono ancora quelle della prova.
Ora compilo il codice Java.

Vengo a incontrare il problema di popolare una ArrayList con gli elementi di una matrice di String.

Vediamo...

Creo un'arrayList e una matrice di String, e vediamo cosa accade.

  String[] words={"uno","due","tre","quattro"};
  List lista=new ArrayList();
  Collections.addAll(lista,words);
  for(String e : lista){
   Log.d("ELEMENTO",e);
  }
Con Collection.addAll(lista di destinazione, lista di origine) si può ottenere la copia:
06-27 21:06:46.652: D/ELEMENTO(7376): uno
06-27 21:06:46.652: D/ELEMENTO(7376): due
06-27 21:06:46.652: D/ELEMENTO(7376): tre
06-27 21:06:46.652: D/ELEMENTO(7376): quattro
Dunque passiamo all'applicazione.


Ecco il codice totale:
public class Interfaccia extends Activity {

 Spinner spinnerOre1,spinnerMinuti1;
 Spinner spinnerOre2,spinnerMinuti2;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_interfaccia);
  spinnerOre1=(Spinner)findViewById(R.id.spinnerore1);
  spinnerMinuti1=(Spinner)findViewById(R.id.spinnerminuti1);
  spinnerOre2=(Spinner)findViewById(R.id.spinnerore2);
  spinnerMinuti2=(Spinner)findViewById(R.id.spinnerminuti2);
  
  
  Integer[] ore={0,1,2,3,4,5,6,7,8,9,10,11,12};
  List listaOre=new ArrayList();
  Collections.addAll(listaOre, ore);
  ArrayAdapter adapter=new ArrayAdapter(this,R.layout.testo,listaOre);
  spinnerOre1.setAdapter(adapter);
  spinnerOre2.setAdapter(adapter);
  
  Integer[] minuti={0,5,10,15,20,25,30,35,40,45,50,55};
  List listaMinuti=new ArrayList();
  Collections.addAll(listaMinuti, minuti);
  ArrayAdapter adapter2=new ArrayAdapter(this,R.layout.testo,listaMinuti);
  spinnerMinuti1.setAdapter(adapter2);
  spinnerMinuti2.setAdapter(adapter2);
  

 }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.palestraxml3.Terza" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Intervallo minimo di campionamento" />
    
    
<!-- Il LinearLayout orizzontale "intervallo minimo di campionamento -->
    <LinearLayout 
        android:id="@+id/frameTimer"
        android:orientation="horizontal"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:gravity="center"
        android:background="@drawable/shap" >
        
        
    <!-- primo LinearLayout veticale (ore) -->
        <LinearLayout 
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
        <TextView    
            android:id="@+id/txtore1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ORE" />
        
        <Spinner 
            android:id="@+id/spinnerore1"
            android:layout_width="100dp"
            android:layout_height="wrap_content" />
        
        </LinearLayout>
        
   <!-- Secondo linearLayout verticale(minuti) -->
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:orientation="vertical" >
        
            <TextView
                android:id="@+id/txtminuti1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="MINUTI" />
            
            <Spinner
                android:id="@+id/spinnerminuti1"
                android:layout_width="100dp"
                android:layout_height="wrap_content" />
        </LinearLayout>
    <!-- fine secondo linearlayoue verticale -->

    </LinearLayout>
<!-- fine primo linearlayout orizzontale (intervallo minimo) -->
    
    
    <TextView
        android:layout_marginTop="10dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Intervallo massimo di campionamento" />
<!-- Secondo layout orizzontale (intervallo massimo di campionamento -->
    <LinearLayout 
        android:id="@+id/frameTimer2"
        android:orientation="horizontal"
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:gravity="center"
        android:background="@drawable/shap" > 
       
        <LinearLayout 
            android:orientation="vertical"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">
            
        <TextView    
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="ORE" />
        
        <Spinner
            android:id="@+id/spinnerore2"
            android:layout_width="100dp"
            android:layout_height="wrap_content" />
        
        </LinearLayout>
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="10dp"
            android:orientation="vertical" >

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="MINUTI" />

            <Spinner
                android:id="@+id/spinnerminuti2"
                android:layout_width="100dp"
                android:layout_height="wrap_content" />
        </LinearLayout>

    </LinearLayout>
</LinearLayout>
Abbiamo poi i files XML contenuti nelle varie cartelle delle risorse: un file testo.xml che serve da elemento degli Spinner, un file shap.xml che serve per la forma arrotondata dei LinearLayout.

Ora devo gestirlo da un punto di vista matematico.

Nessun commento:

Posta un commento