Tengo una actividad principal que la he llamado AlfaActivity, esta actividad simplemente tiene 2 botones: "login" y "register". Para el click del login hago lo siguiente:
Código:
En login tengo lo siguiente:btnLogin.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent intent = new Intent(v.getContext(), Login.class); startActivity(intent); } });
Código:
Si quito el try y catch, me sale en el LogCat un monton de excepciones originados por un java.lang.NullPointerException o si quito el OnLoginListener (es el causante del problema). El código del contrologin es el siguiente:package com.droid; import java.util.ArrayList; import org.json.JSONArray; import org.json.JSONObject; import com.access.ControlLogin; import com.access.OnLoginListener; import com.access.Post; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.widget.Toast; public class Login extends Activity { private ControlLogin ctlLogin; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.control_login); ctlLogin = (ControlLogin) findViewById(R.id.CtlLogin); try { ctlLogin.setOnLoginListener(new OnLoginListener() { @Override public void test() { Toast.makeText(getBaseContext(), "Test. ", Toast.LENGTH_SHORT).show(); } }); } catch (Exception ex) { Log.e("Ex_Login", "Error: " + ex.getMessage()); Toast.makeText(getApplicationContext(), ex.getClass().getName() + " " + ex.getMessage(), Toast.LENGTH_LONG).show(); } } }
Código:
Y la interfaz (OnLoginListener.java):package com.access; import com.droid.R; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import com.access.OnLoginListener; public class ControlLogin extends LinearLayout { private EditText txtUsuario; private EditText txtPassword; private Button btnLogin; private TextView lblMensaje; public OnLoginListener listener; public ControlLogin(Context context) { super(context); inicializar(); } public ControlLogin(Context context, AttributeSet attrs) { super(context, attrs); inicializar(); } private void inicializar() { // Utilizamos el layout 'control_login' como interfaz del control String infService = Context.LAYOUT_INFLATER_SERVICE; LayoutInflater li = (LayoutInflater) getContext().getSystemService( infService); li.inflate(R.layout.control_login, this, true); // Obtenemoslas referencias a los distintos control txtUsuario = (EditText) findViewById(R.id.TxtUsuario); txtPassword = (EditText) findViewById(R.id.TxtPassword); btnLogin = (Button) findViewById(R.id.BtnAceptar); lblMensaje = (TextView) findViewById(R.id.LblMensaje); // Asociamos los eventos necesarios asignarEventos(); } public void setOnLoginListener(OnLoginListener l) { listener = l; } private void asignarEventos() { btnLogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { listener.test(); } }); } public void setMensaje(String msg) { lblMensaje.setText(msg); } }
Código:
Es super raro que no me detecte alguno de los elementos. En el AndroidManifiest creo tener todo lo que hace falta:package com.access; public interface OnLoginListener { void test(); }
Código:
¿Alguno podría tener alguna idea de que me podría estar sucediendo? Resultante bastante frustante el estar constantemente probando cosas y nada... que siga produciéndose el mismo error de ejecución.<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.droid" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".AlfaActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Login"> <intent-filter> <action android:name="Login" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> </manifest>
Un saludo y gracias.