2016-04-25 2 views
0

XML код:андроид: OnClick метод не работает

<Button 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Invia" 
      android:clickable="true" 
      android:onClick="onClick1" 
      android:id="@+id/invia" /> 

Java код:

import android.app.Activity; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 

import java.util.HashMap; 
import java.util.Locale; 
import java.util.Map; 

public class CreazioneSondaggio extends AppCompatActivity { 

    String URL; 
    private EditText titolo; 
    private EditText sceltaA; 
    private EditText sceltaB; 
    private EditText sceltaC; 
    private Button invio; 
    private EditText server; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     titolo = (EditText) findViewById(R.id.titolo); 
     sceltaA = (EditText) findViewById(R.id.A); 
     sceltaB = (EditText) findViewById(R.id.B); 
     sceltaC = (EditText) findViewById(R.id.C); 
     server= (EditText) findViewById(R.id.server); 
     invio = (Button) findViewById(R.id.invia); 

     // invio.setOnClickListener(this); 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_creazione_sondaggio); 
    } 

    private void inviodati() { 
     ...... 
    } 

    public void onClick1(View v) { 
     Toast.makeText(CreazioneSondaggio.this, "ok", Toast.LENGTH_LONG).show(); 

      inviodati(); 



    } 


} 

Ошибка:

Process: com.example.rober.registrazione, PID: 21261 java.lang.IllegalStateException: Could not execute method for android:onClick at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:275) at android.view.View.performClick(View.java:5210) at android.view.View$PerformClick.run(View.java:21288) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5527) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270) at android.view.View.performClick(View.java:5210)  at android.view.View$PerformClick.run(View.java:21288)  at android.os.Handler.handleCallback(Handler.java:739)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5527)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)  Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.text.Editable android.widget.EditText.getText()' on a null object reference at com.example.rober.registrazione.CreazioneSondaggio.inviodati(CreazioneSondaggio.java:48) at com.example.rober.registrazione.CreazioneSondaggio.onClick1(CreazioneSondaggio.java:87) at java.lang.reflect.Method.invoke(Native Method)  at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:270)  at android.view.View.performClick(View.java:5210)  at android.view.View$PerformClick.run(View.java:21288)  at android.os.Handler.handleCallback(Handler.java:739)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5527)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)

Как я могу это исправить?

+0

, пожалуйста, добавьте свой код активности – USKMobility

+0

ok у меня есть его – robx

+0

где вы используете getText()?, Основная причина - исключение null-указателя. – USKMobility

ответ

2

обновления вашего OnCreate метода

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_creazione_sondaggio); 
     titolo = (EditText) findViewById(R.id.titolo); 
     sceltaA = (EditText) findViewById(R.id.A); 
     sceltaB = (EditText) findViewById(R.id.B); 
     sceltaC = (EditText) findViewById(R.id.C); 
     server= (EditText) findViewById(R.id.server); 
     invio = (Button) findViewById(R.id.invia); 

     // invio.setOnClickListener(this); 


    } 
0

Xml Планировка:

<Button 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="Invia" 
    android:clickable="true" 
    android:id="@+id/invia" /> 

Добавить следующий код в вашу деятельность:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.your_layout); 

     titolo = (EditText) findViewById(R.id.titolo); 
     sceltaA = (EditText) findViewById(R.id.A); 
     sceltaB = (EditText) findViewById(R.id.B); 
     sceltaC = (EditText) findViewById(R.id.C); 
     server= (EditText) findViewById(R.id.server); 
     invio = (Button) findViewById(R.id.invia); 

     invio.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Toast.makeText(CreazioneSondaggio.this, "ok", Toast.LENGTH_LONG).show(); 
       // code 
      } 
     }); 

    } 
+0

теперь скажите эту ошибку с кодом ур. Java.lang.RuntimeException: не удалось запустить Activity ComponentInfo {com.example.rober.registrazione/com.example.rober.registrazione.CreazioneSondaggio}: java.lang.NullPointerException: попытка вызвать виртуальный метод 'void android.widget.Button.setOnClickListener (android.view.View $ OnClickListener)' на ссылке нулевого объекта – robx

0

сделать как это ...

super.onCreate(savedInstanceState); 
     setContentView(R.layout.your_layout); 
    InviaButton = (TextView) findViewById(R.id.invia); 

    InviaButton.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
    //your_code 
     } 
    } 
0

вам нужно найти каждый вид деятельности раскладки раз накачивается до активности следующего

super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_creazione_sondaggio); 

    titolo = (EditText) findViewById(R.id.titolo); 
    sceltaA = (EditText) findViewById(R.id.A); 
    sceltaB = (EditText) findViewById(R.id.B); 
    sceltaC = (EditText) findViewById(R.id.C); 
    server= (EditText) findViewById(R.id.server); 

и так как вы использовали атрибут не OnClick нет необходимости инициировать ссылку кнопки вы можете сделать прямо

public void onClick1(View v) { 

      if(v.getId() == R.id.invia) 
      { 

      } 


     } 
0

Прочитайте полный стек здесь, он говорит: java.lang.NullPointerException: попытка вызвать виртуальный метод 'android.text.Editable android.widget.EditText.getText()' , вы не инициализировали EditText, но используете его в методе onClick. Попытайтесь понять это.

Смежные вопросы