Android Eclipse Problema SetOnClickListener

Si alguien me puede ayudar... implemento OnClickListener en una ActionBarACtivity que es un android project que se me crear normalmente, cuando quiero llamar a un boton de Android

Button aceptar = (Button)findbyid(R.Id.btn_aceptar);

por ahi todo bien pero abajo de eso pongo

aceptar.setOnClickListener(this);

esta parte del codigo hace que al ejecutar la aplicacion me haga un force close, tengo los metodos implementados y todo, y nomas quito esa linea de codigo vuelve a funcionar la aplicacion pero me interesa usar el OnClickListener para los eventos de los botones. ¿Alguien tiene idea? Gracias
Primero, te recomendaría que el Button lo declararas como una variable miembro, por si acaso lo quieras usar en otra parte del código, en algún otro método. O sea que declara el Button fuera del onCreate.

En el onCreate haz:
aceptar = (Button) findViewById(R.id.aceptar);


Y el tema del OnClickListener lo tienes bien, pero tienes que hacer que tu clase implemente la interfaz View.OnClickListener. Vamos, la clase debería quedar algo así:
public class MyActivity extends Activity implements View.OnClickListener
{
       //TODO onCreate y todas esa movidas.
}

skillath escribió:Primero, te recomendaría que el Button lo declararas como una variable miembro, por si acaso lo quieras usar en otra parte del código, en algún otro método. O sea que declara el Button fuera del onCreate.

En el onCreate haz:
aceptar = (Button) findViewById(R.id.aceptar);


Y el tema del OnClickListener lo tienes bien, pero tienes que hacer que tu clase implemente la interfaz View.OnClickListener. Vamos, la clase debería quedar algo así:
public class MyActivity extends Activity implements View.OnClickListener
{
       //TODO onCreate y todas esa movidas.
}



Muchas gracias, lo solucione de otra manera no se si tiene que ver, pero cuando empiezo un nuevo proyecto android me genera metodos distintos, automaticos, al onCreate y al borrar esos metodos ya no me da error el OnClickListener, ando haciendo un chat por sockets el problema que tengo ahora es que hago un thread asi como lo hice en Java, puedo enviar mensajes a un programa en java desde android pero no los recibo, y estoy medio leyendo algo del Runneable que me tiene medio confuso, ¿no funcionan igual los hilos en Java y Android?
Hice un cliente de chat para Android vía sockets (funcionaba entre PC-Android y Android-Android) hace poco en la empresa de prácticas en la que estuve.
Doy por hecho que sabes lo básico de los sockets (cliente-servidor).

En el server crea un hilo hasta que un cliente se conecte.
boolean mFlag = true;
while (mFlag)
{
   //TODO Esperar hasta que un cliente quiera conectarse al server. Cuando se conecte:
   // mFlag = false;
   // "Conectar" los InputStream y OutputStream
}


Una vez hecho eso, no deberías tener ningún problema, si no recuerdo mal.
De todos modos haz un Log.d("CHAT", mensajeRecibido); cada vez que supuestamente recibes un mensaje para estar seguro que lo has recibido. Lo mostrará en el LogCat.

En caso que lo muestre y, por tanto, lo reciba pero no se muestre en el TextView correspondiente, quizá sea porque no has puesto un Handler en el hilo que recibe mensajes y por tanto no te deje escribir en el hilo principal de la aplicación. Aunque si fuera esa la razón creo que la aplicación cascaría.

De todos modos, si no lo consigues házmelo saber y rebuscaré en el proyecto de los sockets para echarte un cable, que ahora mismo estoy en frío y sin nada delante para poder mirar.

¡Suerte y un saludo! ;)
skillath escribió:Hice un cliente de chat para Android vía sockets (funcionaba entre PC-Android y Android-Android) hace poco en la empresa de prácticas en la que estuve.
Doy por hecho que sabes lo básico de los sockets (cliente-servidor).

En el server crea un hilo hasta que un cliente se conecte.
boolean mFlag = true;
while (mFlag)
{
   //TODO Esperar hasta que un cliente quiera conectarse al server. Cuando se conecte:
   // mFlag = false;
   // "Conectar" los InputStream y OutputStream
}


Una vez hecho eso, no deberías tener ningún problema, si no recuerdo mal.
De todos modos haz un Log.d("CHAT", mensajeRecibido); cada vez que supuestamente recibes un mensaje para estar seguro que lo has recibido. Lo mostrará en el LogCat.

En caso que lo muestre y, por tanto, lo reciba pero no se muestre en el TextView correspondiente, quizá sea porque no has puesto un Handler en el hilo que recibe mensajes y por tanto no te deje escribir en el hilo principal de la aplicación. Aunque si fuera esa la razón creo que la aplicación cascaría.

De todos modos, si no lo consigues házmelo saber y rebuscaré en el proyecto de los sockets para echarte un cable, que ahora mismo estoy en frío y sin nada delante para poder mirar.

¡Suerte y un saludo! ;)

Hola y muchas gracias por tu respuesta, ya lo hice funcionar pero en un thread modificaba algunas texview y me daba error eso, lo que use fue:

runOnUiThread(new Runnable() {
public void run() {
lblestado.setText("Conectado:"+so.getRemoteSocketAddress());


}
});

Y ya puse dentro lo que ocupaba, lo unico que me falta ahora es meter emoticons, bueno la tarea era solo meter 5 emoticons, los metro dentro de un package pero no se por que no los reconoce, tambien estoy tratando de usar una clase, por ejemplo que una TextView muestre codigo html, a partir de ahi quiero mostrar el emoticon con un replace cuando por ejemplo el texto tenga ":)" muestre el emoticon de la carita feliz, ¿no utilizaste emoticons en tu programa?, gracias y un saludo.
El programa era sólo texto. El tema de los emoticonos puedes meterlo en la carpeta de los Drawables. Cuando recibes el mensaje si el texto es igual a ":)" cargas la imagen correspondiente. Ahora bien, para ello deberías crear TextViews e ImageViews dinámicamente.
skillath escribió:El programa era sólo texto. El tema de los emoticonos puedes meterlo en la carpeta de los Drawables. Cuando recibes el mensaje si el texto es igual a ":)" cargas la imagen correspondiente. Ahora bien, para ello deberías crear TextViews e ImageViews dinámicamente.

El problema es que creo que ocupo un componente que admita texto enriquecido, en la listview no puedo agregarlos, alguna idea de como agregar un componente rtf al editor de la interface?
Pues se me vienen a la cabeza dos posibles soluciones:

1- Crear un View que reciba un string y un bitmap.
2- Crear una adapter para el ListView que le permita inyectar a éste texto enriquecido.
7 respuestas