Boa tarde pessoal.
Antes de mais nada um feliz ano novo a vocês.
Eu estou desenvolvendo um app para android abaixo de 3.0 e estou utilizando a Action Bar, portanto estou implementando utilizando a ActionBar Sherlock.
Inicialmente eu desenvolvi:
Uma SherlockFragmentActivity onde eu carrego as abas.
E criei 3 SherlockFragment's 1 para cada aba.
E estava trabalhando dessa maneira chamando eles no Listener da Tab, conforme a aba selecionada ou não.
Mas estava tendo milhares de problemas referentes ao acesso dos componentes nos fragments e etc.
Pois as 3 abas compõem o mesmo objeto que é o objeto Cliente.
E por exemplo eu poderia abrir o Cadastro Cliente e clicar no botão pesquisar da actionbar e pesquisar por um cliente especifico ai eu precisaria carregar todos os campos da 3 abas, mesmo as abas que ainda não foram previamente selecionadas e eu não conseguia fazer o acesso aos componentes.
Após ver esse tópico e olhar os exemplos que a Suelen postou, resolvi mudar o jeito que estava implementando para trabalhar corretamente com os Fragments, pois tenho muito pouco conhecimento relativo a eles e os exemplos são muito bons, mas estou obtendo alguns erros.
E estou recebendo uma exceção: Binary XML file line #15: You must supply a layout_width attribute.
Eu sei que é uma exceção que está bem explicito o erro, mas não estou conseguindo resolver, pode ser devido a maneira que estão implementados meus layouts, se puderem ajudar eu agradeço:
onCreate da minha Activity principal:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
setContentView(R.layout.activity_cadastro_cliente);
setTitle("Cliente");
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.Tab tabDados = actionBar.newTab();
ActionBar.Tab tabEntrega = actionBar.newTab();
ActionBar.Tab tabCobranca = actionBar.newTab();
tabDados.setText("Dados");
tabEntrega.setText("Entrega");
tabCobranca.setText("Cobrança");
tabDados.setTabListener(new NavTabListener<CadastroClienteDados>(this, "dados", CadastroClienteDados.class));
actionBar.addTab(tabDados);
actionBar.addTab(tabEntrega);
actionBar.addTab(tabCobranca);
} catch (Exception e) {
// TODO: handle exception
Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
}
Layout da minha Activity principal:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".CadastroCliente" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
class="dataplus.app.dataplussmart.CadastroClienteDados"
android:id="@+id/fragDados" />
</LinearLayout>
</RelativeLayout>
OnCreateView do Fragment da Aba de Dados:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_cadastro_cliente_dados, null);
imgBtnCNPJ = (ImageButton) view.findViewById(R.id.imgBtnStatusCNPJ);
imgBtnCNPJ.setEnabled(false);
imgBtnCNPJ.setClickable(false);
imgBtnCNPJ.setImageResource(R.drawable.ic_stat_notification_no);
inscricao = (EditText) view.findViewById(R.id.edtInscricaoCliente);
identificacao = (EditText) view.findViewById(R.id.edtIdCliente);
identificacao.setText(cliente.getIdentificacao().toString());
razaoSocial = (EditText) view.findViewById(R.id.edtRazaoCliente);
nomeFantasia = (EditText) view.findViewById(R.id.edtNomeFantasiaCliente);
contato = (EditText) view.findViewById(R.id.edtContatoCliente);
obs = (EditText) view.findViewById(R.id.edtObsCliente);
return view;
}
Layout do fragment da Aba Dados:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
tools:context=".CadastroClienteDados">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="15dip">
<!-- Inscrição -->
<TextView
android:id="@+id/txtInscricaoCliente"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="@string/inscricaoCliente"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</LinearLayout>
</ScrollView>
Eu resumi o layout do Fragment, pq ele tem vários componentes e eu acredito que o erro esteja mais em relação ao ScrollView.
Se puder me ajudar eu agradeço.
Obrigado desde já.
On Thursday, December 27, 2012 11:41:05 AM UTC-2, luiszacheu wrote:
Ola a todos, bom sigo os livros do lecheta mas estou com um pouco de dificuldades no seguinte cenário.Tenho uma activity que possui 2 fragments, onde um é um ListFragment e o outro é um Fragment.Porem na minha activity, onde tenho uma action bar, gostaria de clicar na opçao adicionar item, que criei e ao chamar essa ação é mostrado um DialogFragment onde insiro um nome e clico em um botao salvar e adiciono o item a ListFragment.Bom a minha dificuldade está quando eu clico na opçao de adicionar e clico em salvar passo o metodo dimiss(); para o DialogFragment so que nao consigo encontrar uma forma de atulizar a listFragment.Alguem pode me ajudar, estou meio perdido nisso.OBrigado!
1 comentários:
Bom dia, gostaria de um exemplo utilizando ActionBar, Fragments e EditText. Poderia me explicar como montar um exemplo com isso? Já tenho a ActionBar. Meu email é frederico.brigatte@gmail.com
Postar um comentário