Filipe_Moraes Posted June 2, 2012 at 04:43 PM Report #459867 Posted June 2, 2012 at 04:43 PM (edited) Olá pessoal. Estou com um problema no qual não consigo resolver. O que eu fiz foi uma aplicação para guardas notas ( eu sei que já existem milhares, só que quero aprender a fazer e essa parece bem fácil ) Segue o que estou fazendo: 1) Eu fiz o seguinte, tem um botão inserir e um campo para informar a nota. 2) Ao clicar em inserir, o programa grava o texto na base de dados e adiciona na activity uma linearlayout com o texto que foi gravado. 3) Estou adicionando essa linearlayout através de código e não através do XML (alias, toda a aplicação não tem XML para criar a interface com o utilizador). Ao adiciona-la estou atribuindo um ID a essa linearlayout, que nada mais é o ID da nota na base de dados que foi retornado ao gravar o texto. 4) Atribui a essa linearlayout o evento "setOnClickListener", porque ao clica-la irá abrir uma nova activity que contém mais informações sobre a nota. 5) Ao clicar na linearlayout é gerado uma nova activity ( quem também é sem XML, gerei via código ) que contém toda a informação necessária. Aqui está o problema, ao clicar na linearlayout, a nova activity aparece mais sem nada, toda preta. Segue o códigos. Essa é a função que é chamada ao clicar na linearlayout: private OnClickListener fMaisInfo = new OnClickListener() { public void onClick(View v) { //Iniciando a nova activity Intent xInt = new Intent(NotasSemXmlActivity.this, MaisInfoActivity.class); xInt.putExtra("ID", Integer.toString(v.getId())); NotasSemXmlActivity.this.startActivity(xInt); } }; Essa é a nova activity: package br.com.NotasSemXml; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TableLayout; import android.widget.TextView; public class MaisInfoActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Criamos um TableLayout final TableLayout infoPanel = new TableLayout(this); infoPanel.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); final TextView textView = new TextView(this); textView.setText("APENAS PARA TESTE"); textView.setBackgroundColor(Color.YELLOW); textView.setTextSize(15,5); infoPanel.addView(textView); Button infoButton = new Button(this); infoButton.setText("Fechar"); infoButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { finish(); } }); infoPanel.addView(infoButton); } } Porque a nova activity aparece toda preta e sem os elementos que foram gerados via código? Obrigado pela vossa atenção pessoal e pela vossa ajuda. Edited June 2, 2012 at 04:44 PM by Filipe_Moraes
Filipe_Moraes Posted June 2, 2012 at 05:07 PM Author Report #459869 Posted June 2, 2012 at 05:07 PM Pessoal, consegui resolver ao final de um dia e meio pesquisando e testando. Descobri umas 50 maneiras de como não se faz, kkkk! 😄 Mas ao fim, consegui, para aqueles que estão a criar a sua aplicação sem XML, alterei o meu segundo código (que postei no primeiro post), que ficou da seguinte maneira: package br.com.NotasSemXml; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.ScrollView; //import android.widget.TableLayout; import android.widget.TextView; public class MaisInfoActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { Intent pId = getIntent(); super.onCreate(savedInstanceState); ScrollView sv = new ScrollView(this); final LinearLayout infoPanel = new LinearLayout(this); infoPanel.setOrientation(LinearLayout.VERTICAL); infoPanel.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); sv.addView(infoPanel); final TextView textView = new TextView(this); textView.setText("MAIS INFORMAÇÕES SOBRE: "+pId.getStringExtra("ID")); textView.setBackgroundColor(Color.YELLOW); textView.setTextSize(15,5); infoPanel.addView(textView); Button infoButton = new Button(this); infoButton.setText("Fechar"); infoButton.setOnClickListener(new OnClickListener() { public void onClick(View v) { finish(); } }); infoPanel.addView(infoButton); this.setContentView(sv); } } Bom, fica a dica para quem se encontrar com o mesmo problema. Obrigado. 1 Report
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now