Erro ao criar new int

Olá pessoal,

estou aprendendo a desenvolver aplicativos no Android e acompanhando um vídeo tutorial do nosso colega lavai0, que por sinal é bem bacana, porém em uma de seus tutoriais esbarrei em um desafio. Tenho o seguinte método:

public void CarregaDados(){
    	
    	MostraDados = (ListView) findViewById(R.id.lvMostraDados);
    	
    	if(VerificaRegistro()){
    		String[] Coluna = new String[] {KEY_NOMEPESSOA};
    	    AdapterLista = new SimpleCursorAdapter(this,R.layout.mostrabanco,cursor,Coluna, new int[] (R.id.txtCarregaDados));
            MostraDados.setAdapter(AdapterLista);    
    	}	
    	else
    		MensagemAlerta("Erro 04","Você não possui cadastro!");   
    }

Nesse método está dando 02 erros em “new int[]” que retorna as seguintes mensagens:

1.: Syntax error on token “]”, AssignmentOperator expected after this token;
2.: The left-hand side of an assignment must be a variable;

Alguém sabe o porque desse erro e como contornar essa situação?

Desde já agradeço pela ajuda!

Quando você criar uma instância de um array, precisa informar o tamanho, por exemplo

int[] myArray = new int[10];

Observe que nesse trecho new int[] (R.id.txtCarregaDados), faltou informar o tamanho.

O problema esta no new int[] usado. Veja: http://developer.android.com/reference/android/widget/SimpleCursorAdapter.html

Um exemplo de uso pode ser encontrado em: http://thinkandroid.wordpress.com/2010/01/09/simplecursoradapters-and-listviews/

Att,

Olá,

muito obrigado pela ajuda. Fiz da seguinte forma:

if(VerificaRegistro()){
    		String[] Coluna = new String[] {KEY_NOMEPESSOA};
    		int[] to = new int[] { R.id.txtCarregaDados, R.id.txtCarregaDados };
    	    AdapterLista = new SimpleCursorAdapter(this,R.layout.mostrabanco,cursor,Coluna, new int[] (R.id.txtCarregaDados));
            MostraDados.setAdapter(AdapterLista);    
    	}

Porém como ainda estou engatinhando no Android e no Java, gostaria de tirar só duas dúvidas. São elas:

Qual o segundo parâmetro que coloco nesse linha?

Como faço para usar o código acima, no código abaixo?

Mais uma vez muito obrigado!

Att.

Existem duas maneiras para se criar um array de int e então já inicializá-lo com os valores desejados.

Uma delas é a seguinte:

new int [] { 2, 4, 5 } 

onde você criou ym array de 3 posições, e pôs na posição [0] o valor 2, na posição [1] o valor 4, e na posição [2] o valor 5.

A outra é você criar uma variável separada, e então inicializar as coisas separadamente:

int[] parametro = new int [3];
parametro [0] = 2;
parametro [0] = 4;
parametro [0] = 5;

Bom dia Marcos.

O uso do SimpleCursorAdapter é composto por valores pegos na sua query “from” (ex. nomeDaPessoa; idadeDaPessoa)

  • os valores “to” que serão os campos no qual o valores irão
<TextView
        android:id="@+id/nomeDaPessoa"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="28dip" />
<TextView
        android:id="@+id/idadeDaPessoa"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="28dip" />

(ex. no seu xml = R.id.nomeDaPessoa; R.id.idadeDaPessoa).

No exemplo enviado, ele faz exatamente isso.

Att,

Bom dia gnudark,

Entendi…perfeito… só mais uma dúvida, como faço para chamar esse int[] dentro dessa linha, pois está dando erro?

AdapterLista = new SimpleCursorAdapter(this,R.layout.mostrabanco,cursor,Coluna, [b]new int[]/b);

Obrigado mais uma vez…

[quote=Marcos Tavares]Bom dia gnudark,

Entendi…perfeito… só mais uma dúvida, como faço para chamar esse int[] dentro dessa linha, pois está dando erro?

AdapterLista = new SimpleCursorAdapter(this,R.layout.mostrabanco,cursor,Coluna, [b]new int[]/b);

Obrigado mais uma vez…[/quote]

Tenta assim:

ou para maior entendimento:

int[] to = new int[]{R.id.txtCarregaDados}; AdapterLista = new SimpleCursorAdapter(this,R.layout.mostrabanco,cursor,Coluna, to);

Att,

Bom dia gnudark.

Muito obrigado pela ajuda. Funcionou perfeitamente.

Abraços