Autore Topic: Button non funziona  (Letto 185 volte)

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
Button non funziona
« il: 24 Ottobre 2016, 08:43:01 CEST »
0
Buon Giorno a tutti dove sbaglio ho il Button che non funziona,sto aprendo una Activity da un menu e fin qui tutto bene ora pero voglio far si che premendo il bottone mi vada a registrare un ip su una stringa in una classe(logica che implementerò)ora sto testando il batton ma non funziona:

Questo è XML:

Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_inserisci_ipdel_pc"
    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.paolo.myapplication.InserisciIPdelPC">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/eTinserireIP"
        android:hint="INSERISCI IP" />

    <Button
        android:text="Salva ip"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnInserisciIP" />
</LinearLayout>

E questa la sua classe:
Codice: [Seleziona]
public class InserisciIPdelPC extends AppCompatActivity implements View.OnClickListener {

    Button bottonesalvaip;
    EditText inserisciip;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_inserisci_ipdel_pc);

        bottonesalvaip = (Button)findViewById(R.id.btnInserisciIP);
    }

    @Override
    public void onClick(View v) {
        Button b = (Button)v;
        switch (b.getId())
        {
            case R.id.btnInserisciIP:
                Toast.makeText(getApplicationContext(),"bottone premuto",Toast.LENGTH_SHORT);

        }
    }
}

Questo è il Logcat,però è riguardante l'apertura della activity,perchè quando premo il button non succede nulla

Codice: [Seleziona]
10-24 06:32:06.407 1617-1629/system_process I/ActivityManager: START u0 {cmp=com.example.paolo.myapplication/.InserisciIPdelPC} from uid 10060 on display 0
10-24 06:32:06.790 1617-1644/system_process I/ActivityManager: Displayed com.example.paolo.myapplication/.InserisciIPdelPC: +365ms
10-24 06:43:08.620 1617-2168/system_process I/ActivityManager: START u0 {cmp=com.example.paolo.myapplication/.InserisciIPdelPC} from uid 10060 on display 0
10-24 06:43:08.888 1617-1644/system_process I/ActivityManager: Displayed com.example.paolo.myapplication/.InserisciIPdelPC: +251ms
« Ultima modifica: 24 Ottobre 2016, 08:45:13 CEST da nio74 »

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:Button non funziona
« Risposta #1 il: 24 Ottobre 2016, 09:23:17 CEST »
0
Ciao,
il problema è che stai usando l'onClick dell'activity e non quando clicchi sul button.
Per usare il click sul button puoi fare una cosa del genere,
nella onCreate fai:

Codice (Java): [Seleziona]
        bottonesalvaip .setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //qui imlementi quello che deve fare il button
            }
        });

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
Re:Button non funziona
« Risposta #2 il: 24 Ottobre 2016, 09:28:37 CEST »
0
Ciao,
il problema è che stai usando l'onClick dell'activity e non quando clicchi sul button.
Per usare il click sul button puoi fare una cosa del genere,
nella onCreate fai:

Codice (Java): [Seleziona]
        bottonesalvaip .setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //qui imlementi quello che deve fare il button
            }
        });

Nella classe implementando OnClickListener per intercettare i click non capisco come mai non me li intercetti ,comunque ora provo anche in quel sistema.

Post unito: 24 Ottobre 2016, 09:36:39 CEST
Ho provato anche la tua opzione ma niente il Toast non compare:

Codice: [Seleziona]
public class InserisciIPdelPC extends AppCompatActivity  {

    private final static String MY_PREFERENCES = "MyPref";
    // Costante relativa al nome della particolare preferenza
    private final static String TEXT_DATA_KEY = "textData";
    Button bottonesalvaip;
    EditText inserisciip;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_inserisci_ipdel_pc);
        bottonesalvaip = (Button)findViewById(R.id.btnInserisciIP);
        bottonesalvaip.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                savePreferencesData();

            }
        });


    }

    public void savePreferencesData() {
        Toast.makeText(getApplicationContext(),"BottonePremuto",Toast.LENGTH_LONG);
    }

}
« Ultima modifica: 24 Ottobre 2016, 09:36:39 CEST da nio74, Reason: Merged DoublePost »

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:Button non funziona
« Risposta #3 il: 24 Ottobre 2016, 09:38:32 CEST »
0
Se vai in debug non passi nell'onclick?

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
Re:Button non funziona
« Risposta #4 il: 24 Ottobre 2016, 09:46:14 CEST »
0
Ti posto il Debug ma del premere il pulsante non se ne da traccia che sia un problema di gradle?

Codice: [Seleziona]
10/24 09:41:41: Launching app
$ adb shell am start -n "com.example.paolo.myapplication/com.example.paolo.myapplication.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Waiting for application to come online: com.example.paolo.myapplication.test | com.example.paolo.myapplication
Connecting to com.example.paolo.myapplication
W/ActivityThread: Application com.example.paolo.myapplication is waiting for the debugger on port 8100...
I/System.out: Sending WAIT chunk
I/art: Debugger is active
I/System.out: Debugger has connected
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
Connected to the target VM, address: 'localhost:8608', transport: 'socket'
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: waiting for debugger to settle...
I/System.out: debugger has settled (1304)
W/System: ClassLoader referenced unknown path: /data/app/com.example.paolo.myapplication-1/lib/x86
I/InstantRun: Instant Run Runtime started. Android package is com.example.paolo.myapplication, real application class is null.
W/System: ClassLoader referenced unknown path: /data/app/com.example.paolo.myapplication-1/lib/x86
W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true

                  [ 10-24 07:41:48.734  9720: 9720 D/         ]
                  HostConnection::get() New Host Connection established 0xaa0572d0, tid 9720


                  [ 10-24 07:41:48.778  9720: 9849 D/         ]
                  HostConnection::get() New Host Connection established 0xaa057390, tid 9849
I/OpenGLRenderer: Initialized EGL, version 1.4
I/ListPopupWindow: Could not find method setEpicenterBounds(Rect) on PopupWindow. Oh well.
W/art: Before Android 4.1, method int android.support.v7.widget.ListViewCompat.lookForSelectablePosition(int, boolean) would have incorrectly overridden the package-private method in android.widget.ListView
E/Surface: getSlotFromBufferLocked: unknown buffer: 0xaaaa88a0
D/OpenGLRenderer: endAllStagingAnimators on 0xa1adb080 (MenuPopupWindow$MenuDropDownListView) with handle 0xa9fbe360
E/Surface: getSlotFromBufferLocked: unknown buffer: 0xaaaa79c0

Pensavo che non fosse registrata la activity sul Manifest ma mi pare tutto ok:
Codice: [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.paolo.myapplication">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".InserisciIPdelPC"></activity>
    </application>

</manifest>

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:Button non funziona
« Risposta #5 il: 24 Ottobre 2016, 09:55:02 CEST »
0
ma se metti un breakpoint nella onclick ci passi?

Offline nio74

  • Nuovo arrivato
  • *
  • Post: 25
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung S5
  • Sistema operativo:
    Windows 10
Re:Button non funziona
« Risposta #6 il: 24 Ottobre 2016, 10:05:52 CEST »
0
Si passa ma non va dentro onClik

Codice: [Seleziona]
this = {InserisciIPdelPC$1@4495}
bottonesalvaip = No such instance field: 'bottonesalvaip'


Se dichiaro il Button Private va dentro al Toast anche se non compare e non so perchè
« Ultima modifica: 24 Ottobre 2016, 10:19:52 CEST da nio74 »

Offline NetGEL

  • Utente normale
  • ***
  • Post: 196
  • Respect: +9
    • Google+
    • Mostra profilo
  • Play Store ID:
    NetGEL
Re:Button non funziona
« Risposta #7 il: 24 Ottobre 2016, 10:21:36 CEST »
0
Ho appena fatto una piccola prova e funziona perfettamente nel modo che ti ho descritto. E' molto strano. Prova a farti un piccolo progetto solo con un button e fai dure prove.
Io non vedo tutto il tuo codice probabilmente c'è qualcos'altro che intercetta l'onclick