Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Problemas com TabHost

Já tem ele o XML está assim:

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

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Referência Bancária: "
        android:textColor="#000000"
        android:textStyle="bold" />

    <EditText
        android:id="@+id/crb_e_referencia"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:singleLine="true" />

    <ImageButton
        android:id="@+id/crb_btSalvar"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/salvar2"
        android:text="Salvar" />

    <ListView
        android:id="@+id/crb_list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="@string/hello" />

</LinearLayout>


Obrigado pela ajuda
Evandro Choma



Em 27 de agosto de 2012 17:06, Maicon Strey <mstrey@gmail.com> escreveu:
Sendo assim o log já deu a resposta.
O ListView que tem nesse layout precisa ter o id "@+id/list"

Pelo menos é o que está parecendo segundo o que diz no teu log.

Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
Linux user: #525086
------------------



2012/8/27 Evandro Choma <evandrochoma@gmail.com>
na linha 35 ele sera o setContentView.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.clienterefbancaria_editar);



Em 27 de agosto de 2012 16:32, Maicon Strey <mstrey@gmail.com> escreveu:

Pelo teu log quem está estourando o erro é a classe EditaClienteRefBancaria, na linha 35.
Ainda no log está dizendo que tu precisas de um ListView com o id "android.R.id.list"

Cara, pra mim parece que teu log tá informando bem claro qual o problema.
da uma olhada melhor ai.

Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
Linux user: #525086
------------------



2012/8/27 Evandro Choma <evandrochoma@gmail.com>
Segue as mensagens do logcat em anexo.

Segue anexo o código fonte da criança da tab.

Obrigado
Evandro Choma

package br.com.afv.bean.editar;

import br.com.afv.R;

import android.app.ActivityGroup;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class TabClientes extends ActivityGroup {
    public static TabHost tabHost;
    public TabSpec tabSpec1, tabSpec2, tabSpec3, tabSpec4, tabSpec5, tabSpec6;
    public Intent intent1, intent2, intent3, intent4, intent5, intent6;
    static int tab = -1;

    private String idRepres;
    private int idCliente = 0;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cliente_tab);

        Bundle extras = getIntent().getExtras();
        idRepres = extras.get("representante").toString();
        idCliente = extras.getInt("id");

        Log.i("AFV", "TabCliente - Representante: " + idRepres + " - Cliente: " + idCliente);

        Resources res = getResources();
        tabHost = (TabHost) findViewById(R.id.tabhost);
        tabHost.setup(this.getLocalActivityManager());

        // Adiciona Tab #1 - Cliente
        intent1 = new Intent().setClass(this, EditaClientes.class);
        intent1.putExtra("representante", idRepres);
        intent1.putExtra("id", idCliente);

        tabSpec1 = tabHost.newTabSpec("0").setIndicator("Cliente", res.getDrawable(R.drawable.cli_cliente)).setContent(intent1);
        tabHost.addTab(tabSpec1);

        // Adiciona Tab #2 - Ref Bancaria
        intent2 = new Intent().setClass(this, EditaClienteRefBancaria.class);
        intent2.putExtra("representante", idRepres);
        intent2.putExtra("id", idCliente);

        tabSpec2 = tabHost.newTabSpec("1").setIndicator("Ref Banc.",res.getDrawable(R.drawable.cli_bancaria)).setContent(intent2);
        tabHost.addTab(tabSpec2);

        // Adiciona Tab #3 - Ref Comercial
        intent3 = new Intent().setClass(this, EditaClienteRefComercial.class);
        intent3.putExtra("representante", idRepres);
        intent3.putExtra("id", idCliente);

        tabSpec3 = tabHost.newTabSpec("2").setIndicator("Ref Com.",res.getDrawable(R.drawable.cli_comercial)).setContent(intent3);
        tabHost.addTab(tabSpec3);

        // Adiciona Tab #4 - Sócios
        intent4 = new Intent().setClass(this, EditaClienteSocios.class);
        intent4.putExtra("representante", idRepres);
        intent4.putExtra("id", idCliente);

        tabSpec4 = tabHost.newTabSpec("3").setIndicator("Sócios", res.getDrawable(R.drawable.cli_socio)).setContent(intent4);
        tabHost.addTab(tabSpec4);

        // Adiciona Tab #5 - Bens
        intent5 = new Intent().setClass(this, EditaClienteBem.class);
        intent5.putExtra("representante", idRepres);
        intent5.putExtra("id", idCliente);

        tabSpec5 = tabHost.newTabSpec("4").setIndicator("Bens", res.getDrawable(R.drawable.cli_bens)).setContent(intent5);
        tabHost.addTab(tabSpec5);

        // Adiciona Tab #6 - Linhas
        intent6 = new Intent().setClass(this, EditaClienteLinha.class);
        intent6.putExtra("representante", idRepres);
        intent6.putExtra("id", idCliente);

        tabSpec6 = tabHost.newTabSpec("5").setIndicator("Linhas", res.getDrawable(R.drawable.cli_linha)).setContent(intent6);
        tabHost.addTab(tabSpec6);

        if (idCliente == 0) {
            tabHost.getTabWidget().setEnabled(false);

        }

        tabHost.setCurrentTab(0);
    }
}


Em 27 de agosto de 2012 15:15, Otávio Mendes <otaviommendes@gmail.com> escreveu:

Então nos mostre o stacktrace

On 27/08/2012, at 14:58, Evandro Choma <evandrochoma@gmail.com> wrote:

Estou controlando certinho quando pode ou não acessar determinada aba, meu problema agora está simplesmente no fato de que se eu acessar qualquer aba que não seje a primeira ele dá Force Close.


--
[]´s
Evandro Choma
Engenheiro da Computação



Em 14 de agosto de 2012 16:56, Evandro Choma <evandrochoma@gmail.com> escreveu:
Boa Tarde

Criei um TabHost para o cadastro de clientes, a idéia é abrir ele na primeira aba e as próximas só serem habilitadas depois que salvar os dados da primeira, ou se vir para ela através da alteração fica todas liberadas.
Na primeira aba tenho os dados da tabela de cliente, nas outras tenho os dados das tabelas detalhes como referência bancária do cliente, sócios do cliente, linhas do cliente, etc

Estou com 2 problemas, primeiro em controlar se posso ou não acionar as outras abas pois indiferente da situação da primeira ao clicar em outra aba ele abre ela.
2º sempre que eu abro uma nova aba ele mostra o conteúdo rápido na tela e fecha a janela, volta na tela anterior de quando foi chamado a primeira aba.
Tipo eu tenho a listagem de clientes e desta listagem eu chamo a alteração ou inclusão, ao clicar em qualquer aba, ele abre rápido o visual dele e volta para a listagem.

O código pode ser visualizado no link: http://www.portalandroid.org/comunidade/viewtopic.php?f=44&t=20992

Obrigado
EvandroChoma

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário