Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Android] Bottone come variabile globale

    Ciao avrei bisogno di un aiuto riguardo la definizione di un bottone come variabile globale.
    Continuando a fare modifiche sono arrivato a questa situazione:

    Classe Main:

    codice:
    package it.univr.clicca;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.util.Log;
    import android.view.Menu;
    
    import android.widget.*;
    
    public class MainActivity extends Activity {
    	
    
    	public  Button b = new Button(this);
    	public EditText t = new EditText(this);
    
        public int num = 0;
    	public String a="ciao";
    		
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    	
    		num++;
    		
    	
    			setContentView(R.layout.activity_main);
    	}
    
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
    
    }
    Ho necessità di dichiarare il bottone e la text come variabili globali cosi da poter essere utilizzate all'interno di vari metodi come ad esempio quello del listener (ancora da inserire)
    Questo codice non ha errori ma a runtime il programma in esecuzione sull'emulatore android si blocca.

    Se sposto le dichiarazioni all'interno di onCreate funziona ma cosi non posso modificare le variabili da altri metodi.

    Allego screen dei LogCat.

    File AndroidManifest.xml:


    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="it.univr.clicca"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="15"
            android:targetSdkVersion="15" />
    
        <application
            android:allowBackup="true"
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name="it.univr.clicca.MainActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    106
    ma esattamente cosa vuoi fare?
    comunque non si gestiscono così i controlli, ti mancano proprio le basi vedo.

    prima di tutto dichiari una variabile instanza di tipo button (variabile globale)
    nel metodo onCreate la inizializzi, assegnandogli l'id che gli hai imposto nel file layout. Infine gestisci il click o tap su di esso. Ti posto un esempio con il Button

    codice:
    package com.example.testproject;
    
    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    
    public class MainActivity extends Activity implements OnClickListener {
    	public  Button b;
    	public EditText t;
    
        public int num = 0;
    	public String a="ciao";
    		
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    	
    		//inizializzo i controlli
    		b = (Button) findViewById (R.id.button1);
    		t = (EditText) findViewById (R.id.textView1);
    		
    		num++;
    		
    		//gestisco il click sul button
    		b.setOnClickListener(this);
    	}
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
    	@Override
    	public void onClick(View v) {
    		switch (v.getId()){
    		case R.id.button1:
    			/*
    			 * Gestire il click sul button
    			 * ToDo
    			 */
    			t.setText("Hai cliccato il bottone");
    			break;
    		}
    		
    	}
    
    }

  3. #3
    Ok si ho utilizzato male le varibaili Button.
    Grazie per l'aiuto ora ho sistemato il codice!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.