Olá criei uma ListView que populei com um adapter só que o scroll simplesmente não funciona.
mensagens_list.xml
[code]<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout2"
android:layout_width="fill_parent"
android:layout_height="50px"
android:background="@color/LightGrey"
android:orientation="horizontal" >
<TextView
android:id="@+mensagem_list/titulo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="20px"
android:text="Enviar Mensagem"
android:textColor="@color/Black" >
</TextView>
</LinearLayout>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbarAlwaysDrawVerticalTrack="false" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Mensagens:"
android:textSize="16px" >
</TextView>
<LinearLayout
android:layout_width="match_parent"
android:background="@android:drawable/editbox_dropdown_light_frame"
android:layout_height="190dip" >
<ListView
android:id="@+mensagem_list/listaMensagem"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top|left" >
</ListView>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<TextView
android:id="@+mensagem_list/numero_caracteres"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5px"
android:text="X"
android:textSize="16px" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20px"
android:text="caracteres"
android:textSize="16px" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<EditText
android:id="@+mensagem_list/texto_escrevendo"
android:layout_width="wrap_content"
android:layout_height="50px"
android:layout_weight="12"
android:gravity="center_vertical"
android:textSize="16px" />
<Button
android:id="@+mensagem_list/btnEnviar"
android:layout_width="wrap_content"
android:layout_height="50px"
android:layout_weight="1"
android:text="Enviar"
android:textSize="16px" />
</LinearLayout>
<LinearLayout
android:id="@+mensagem_list/botoesPadrao"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+mensagem_list/btnBomDia"
android:layout_width="wrap_content"
android:layout_height="50px"
android:layout_weight="1"
android:text="Bom dia"
android:textSize="16px" />
<Button
android:id="@+mensagem_list/btnBoaTarde"
android:layout_width="wrap_content"
android:layout_height="50px"
android:layout_weight="1"
android:text="Boa tarde"
android:textSize="16px" />
<Button
android:id="@+mensagem_list/btnBoaNoite"
android:layout_width="wrap_content"
android:layout_height="50px"
android:layout_weight="1"
android:text="Boa noite"
android:textSize="16px" />
<Button
android:id="@+mensagem_list/btnOk"
android:layout_width="wrap_content"
android:layout_height="50px"
android:layout_weight="1"
android:text="OK"
android:textSize="16px" />
<Button
android:id="@+mensagem_list/btnObrigado"
android:layout_width="wrap_content"
android:layout_height="50px"
android:layout_weight="1"
android:text="Obrigado"
android:textSize="16px" />
</LinearLayout>
</LinearLayout>
</ScrollView>
[/code]
list_row.xml (XML para o adapter)
[code]<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="4dip"
android:layout_marginTop="2dip"
android:orientation="vertical" >
<TextView
android:id="@+mensagens_list/data"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Data"
android:textSize="13px" />
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+mensagens_list/tipo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Tipo"
android:textSize="16px"
android:textStyle="bold" />
<TextView
android:id="@+mensagens_list/mensagem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="10"
android:gravity="left"
android:text="Mensagem"
android:textSize="16px"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
[/code]
Enfim a Activity:
[code]import java.util.ArrayList;
import java.util.Date;
import nastek.celpe.adapters.MensagensAdapter;
import nastek.celpe.main.CelpeActivity;
import nastek.celpe.main.R;
import nastek.celpe.models.MensagensModel;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MensagemList extends Activity {
private TextView caracteres;
private ListView listaMsg;
private EditText texto_escrevendo;
private Button btnEnviar;
private Button btnBomDia;
private Button btnBoaTarde;
private Button btnBoaNoite;
private Button btnOk;
private Button btnObrigado;
private ArrayList<MensagensModel> listaMensagens_content = new ArrayList<MensagensModel>();
public static final int VOLTAR = 0;
public static final int ENVIAR = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mensagem_list);
caracteres = (TextView) findViewById(R.mensagem_list.numero_caracteres);
listaMsg = (ListView) findViewById(R.mensagem_list.listaMensagem);
texto_escrevendo = (EditText) findViewById(R.mensagem_list.texto_escrevendo);
btnEnviar = (Button) findViewById(R.mensagem_list.btnEnviar);
// Botões padrão
btnBomDia = (Button) findViewById(R.mensagem_list.btnBomDia);
btnBoaTarde = (Button) findViewById(R.mensagem_list.btnBoaTarde);
btnBoaNoite = (Button) findViewById(R.mensagem_list.btnBoaNoite);
btnOk = (Button) findViewById(R.mensagem_list.btnOk);
btnObrigado = (Button) findViewById(R.mensagem_list.btnObrigado);
caracteres.setText("0");
texto_escrevendo.setOnKeyListener(new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_UP) {
caracteres.setText(String.valueOf(texto_escrevendo.length()));
}
return false;
}
});
btnEnviar.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String texto = texto_escrevendo.getText().toString().trim();
if (!("").equals(texto) && texto != null && texto.length() > 0) {
adicionaTexto(texto);
texto = "";
texto_escrevendo.setText("");
caracteres.setText("0");
} else {
texto = "";
texto_escrevendo.setText("");
caracteres.setText("0");
}
}
});
btnBomDia.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String texto = "Bom dia";
adicionaTexto(texto);
}
});
btnBoaTarde.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String texto = "Boa tarde";
adicionaTexto(texto);
}
});
btnBoaNoite.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String texto = "Boa noite";
adicionaTexto(texto);
}
});
btnOk.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String texto = "OK";
adicionaTexto(texto);
}
});
btnObrigado.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
String texto = "Obrigado";
adicionaTexto(texto);
}
});
}
public void adicionaTexto(String texto) {
MensagensModel msgModel = new MensagensModel();
msgModel.setId(123);
msgModel.setData(new Date());
msgModel.setTipo("Viatura: ");
msgModel.setMensagem(texto);
listaMensagens_content.add(msgModel);
MensagensAdapter adapter = new MensagensAdapter(this,
listaMensagens_content);
listaMsg.setAdapter(adapter);
listaMsg.setStackFromBottom(true);
}
/*
*
* Cria o Menu
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, VOLTAR, 0, "Voltar");
menu.add(0, ENVIAR, 0, "Enviar");
return true;
}
/*
*
* Listener item do menu selecionado
*/
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
super.onMenuItemSelected(featureId, item);
switch (item.getItemId()) {
case VOLTAR:
Intent i = new Intent(MensagemList.this, CelpeActivity.class);
startActivity(i);
return true;
case ENVIAR:
// Verificar se não está vazio antes (Usar .trim())
Toast.makeText(this, "Enviada", Toast.LENGTH_SHORT).show();
return true;
default:
return true;
}
}
}
[/code]
Não sei porque não esta funcionando, gostaria de ajuda.
Obrigado, Namor