Problema de crash en android

  • Respuestas:1
Pedro Cuello
  • Posts del Foro: 2

12 jul. 2015 17:11:55 vía Web

Hola tengo un problema y es que se me cierra la app. Consiste en un login que valida las credenciales demo/demo.

Estoy iniciandome y bueno pues seguí un tutorial muy bueno que hay, pero me encuentro con este problma y parece estar todo bien.

Tengo dos clases:
Activity_main y Control_login. El segundo es un control que intento utilizar desde el main. Pero en el momento de pulsar el botón para el login, la aplicación se rompe.

El control_login es:
package com.multiservices.multiservices;

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 es.multi_services.multiservices.R;

/**
* Created by pedro on 7/10/15.
*/

public class ControlLogin extends LinearLayout
{
private EditText txtUsuario;
private EditText txtPassword;
private TextView lblMensaje;
private Button btnLogin;

public ControlLogin(Context context) {
    super(context);
    inicializar();
}

public ControlLogin(Context context, AttributeSet attrs) {
    super(context, attrs);
    inicializar();
}

private OnLoginListener listener;

//...

public void setOnLoginListener(OnLoginListener l)
{
    listener = l;
}
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);

    //Obtenemos las 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 setMensaje(String msg)
{
    lblMensaje.setText(msg);
}

private void asignarEventos()
{
    btnLogin.setOnClickListener(new OnClickListener()
    {
        @Override
        public void onClick(View v) {
            String user,pass;
            user=txtUsuario.getText().toString();
                    pass= txtPassword.getText().toString();


            listener.onLogin(user,pass);
        }
    });
}

}

Y el activity_main es:

package com.multiservices.multiservices;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;

import es.multi_services.multiservices.R;

public class MainActivity extends ActionBarActivity {
private EditText txtUsuario = (EditText) findViewById(R.id.TxtUsuario);

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    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.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

public void redirectionInterface (String profile)
{
    if (profile.toString().equals("supplier"))
    {
        txtUsuario= (EditText) findViewById(R.id.TxtUsuario);
        //Creamos el Intent
        Intent intent =
                new Intent(MainActivity.this, SupplierActivity.class);

        //Creamos la información a pasar entre actividades
        Bundle b = new Bundle();
        b.putString("NOMBRE", txtUsuario.getText().toString());

        //Añadimos la información al intent
        intent.putExtras(b);

        //Iniciamos la nueva actividad
        startActivity(intent);

    }
    else
    {
        txtUsuario= (EditText) findViewById(R.id.TxtUsuario);
        //Creamos el Intent
        Intent intent =
                new Intent(MainActivity.this, RequesterActivity.class);

        //Creamos la información a pasar entre actividades
        Bundle b = new Bundle();
        b.putString("NOMBRE", txtUsuario.getText().toString());

        //Añadimos la información al intent
        intent.putExtras(b);

        //Iniciamos la nueva actividad
        startActivity(intent);

    }
    this.finish();
}

}

Si alguien me puede ayudar, se loa agradezco.

Saludos,

Contestar
Pedro Cuello
  • Posts del Foro: 2

12 jul. 2015 17:12:57 vía Web

Ademas tengo una interface:

package com.multiservices.multiservices;

/**
* Created by pedkoz on 11/07/2015.
*/

public interface OnLoginListener
{
void onLogin(String usuario, String password);
}

Contestar