2012-04-19 23 views
31

OK Soy nuevo en los desarrolladores de Android y Java, así que estoy teniendo problemas con el método de clic aquí está mi código Sé que tengo que estar cerca, gracias de antemano todo lo que quiero que haga mi botón es cuando clic en el teléfono para cambiar la vista de diseño de main.xml a xx.xmlBotón de Android Onclick

package my.project; 

import android.app.Activity; 
import android.os.Bundle; 

import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class ExperiencerlActivity extends Activity { 
    /** Called when the activ`enter code here`ity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);  
     Button button = (Button) findViewById(R.id.button1); 

     button.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
      } 
     }); 
    } 
} 

Aquí está mi código del botón

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/linearLayout1" 
    android:layout_centerHorizontal="true" 
    android:layout_marginBottom="56dp" 
    android:onClick="setLogin" 
    android:text="Login" /> 

Respuesta

0

usar algo como esto:

public void onClick(View v) { 
      // TODO Auto-generated method stub 
      startActivity(new Intent("com.droidnova.android.splashscreen.MyApp")); 
     } 

Mire aquí: Splash screen android

0

Sería útil saber qué código que está intentando ejecutar cuando se pulsa el botón. Tiene la propiedad onClick establecida en su archivo xml en un método llamado setLogin. Para mayor claridad, eliminaría esta línea android:onClick="setLogin" y llamaría al método directamente desde adentro de su método onClick().

también que no sólo puede poner la pantalla en un nuevo XML, es necesario iniciar una nueva actividad con una intención, un método algo como esto sería apropiado

private void setLogin() { 

Intent i = new Intent(currentActivity.this, newActivity.class); 
startActivty(i); 

} 

asentando después la nueva actividad a tener el nuevo diseño.

70

Si se escribe como esto en la etiqueta del botón en el archivo xml: androide: onclick = "setLogin" continuación

hacer como esto:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<Button 
    android:id="@+id/button1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/btn" 
    android:onClick="onClickBtn" /> 

</LinearLayout> 

y en el código de pieza:

public class StartUpActivity extends Activity 
{ 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main);  
    } 

    public void onClickBtn(View v) 
    { 
     Toast.makeText(this, "Clicked on Button", Toast.LENGTH_LONG).show(); 
    } 
} 

y no es necesario todo esto:

Button button = (Button) findViewById(R.id.button1); 
button.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     // TODO Auto-generated method stub 

    } 
}); 

Compruebe una vez;

+0

Istill obtienen errores pueden mostrarle todo en uno? – user1344259

+0

Cambié el código, vea esto y pruebe una vez; – alishaik786

7

Método 1:

public void onClick(View v) { 
      Intent i = new Intent(currentActivity.this, SecondActivity.class); 
     startActivty(i); 
     } 

Método 2:

Button button = (Button) findViewById(R.id.mybutton); 
button.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     Toast.makeText(this, "Button Clicked", Toast.LENGTH_LONG).show(); 

    } 
}); 
+0

amablemente explique su respuesta bien para facilidad de todos los lectores –

4

que necesita para hacer el mismo nombre de método tanto en XML diseño y el código java.

Si utiliza android:onClick="setLogin" entonces usted necesita para hacer un método con el mismo nombre, setLogin:

// Please be noted that you need to add the "View v" parameter 
public void setLogin(View v) { 

} 

CONSEJO:
No mezclar diseño con código utilizando etiqueta en su XML .En su lugar, mueva el método haciendo clic en tu clase con OnClickListener método como:

Button button = (Button) findViewById(R.id.button1); 
button.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
    // TODO Auto-generated method stub 
    } 
}); 

hacer un diseño sólo para diseño y no más. Le ahorrará su valioso tiempo cuando necesite refactorizar para Supporting Multiple Screens.

-1

Hay dos soluciones para esto son: -

(1) no ponga onClick en XML

(2) eliminar

button.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
      // TODO Auto-generated method stub 
    } 
}); 

y poner

public void setLogin(View v) { 
    // Your code here 
} 
0

esto va a solucionar el problema para usted

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

    Button but1=(Button)findViewById(R.id.button1); 

    but1.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Intent int1= new Intent(MainActivity.this,xxactivity.class); 
      startActivity(int1); 
     } 
    }); 
} 

Sólo tiene que modificar la xxactivity que el nombre de su segunda actividad

Cuestiones relacionadas