[ANDROID] Ajuda - ListView não funciona Scroll

0 respostas
namor

Olá criei uma ListView que populei com um adapter só que o scroll simplesmente não funciona.

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

    <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>

</LinearLayout>

list_row.xml (XML para o adapter)

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

    <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>

</LinearLayout>

Enfim a Activity:

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;
		}

	}
}

Não sei porque não esta funcionando, gostaria de ajuda.

Obrigado, Namor

Criado 2 de janeiro de 2012
Respostas 0
Participantes 1