martedì 8 aprile 2014

NullPointerException su OnCreate di Android

Per molto tempo sono stato abituato a dichiarare i widget di Android direttamente nella funzione OnCreate con una sintassi di questo tipo


-------------------------------------------
public void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
 setContentView(R.layout.activity_main); 

Button cerca = (Button) findViewById(R.id.button1); 
cerca.setOnClickListener(new OnClickListener(){ 
                      public void onClick(View v) { 
                             //fai qualcosa
                        } 
                    });
 }
-------------------------------------------

con le nuove modifiche questa sintassi crea un NullPointerException (senza molte altre spiegazioni)
Adesso invece si le dichiarazioni devono essere spostati in OnCreateView()
--------------------------------------------
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,false);
msg = (TextView) rootView.findViewById(R.id.textView1);
Button cerca= (Button) rootView.findViewById(R.id.button1);
cerca.setOnClickListener(new View.OnClickListener() {
          public void onClick(View view) {
               //fai qualcosa;
          }
       });
return rootView;
}
--------------------------------------------
Per rendere visibile a tutto il programma la TextView si puo' dichiarare come static nella MainActivity

--------------------------------------------
public class MainActivity extends ActionBarActivity {
private static TextView rssi_msg;
--------------------------------------------

Un altro aspetto che e' cambiato nel modo di programmare Android e' la presenza di due file di layout (ovvero il classico activity_main.xml e fragment_main.xml). I componenti visivi devono essere posti su fragment_main.xml

Per cambiare il tema dell'applicazione si puo' modificare il file AndroidManifest.xml come
--------------------------------------------
        <activity
            android:name="com.luca.innocenti.bttester.MainActivity"
            android:label="@string/app_name" 
            android:theme="@style/Theme.AppCompat">

Nessun commento:

Posta un commento

Physics informed neural network Fukuzono

Visto che puro ML non funziona per le serie tempo di cui mi sto occupando ed le regressioni basate su formule analitiche mostrano dei limiti...