Como Descarregar um stringItem em 2 forms em um Midlet

10 respostas
Gizelma

Estou tentando reusar um stringItem de um form para outro, porem dá erro de acesso ao heap, e os forms em si a mesma.
tem como descarregar o form?

10 Respostas

P

explique-se melhor…

Gizelma

:oops: Realmente não fui nem um pouco clara e ainda errei na hora de escrever o titulo, oq quero é o seguinte:
Criei 3 StringItens e setei os valores que queria e adicionei-as em um form, porem quendo chamo o outro form, gostaria de usar essas mesmas StringIten, para não precisar carregar mais 3 componentes com os mesmos valores, só que quando vou adiciona-las em um outro form dá um erro e cai o programa. tem como fazer isso, uma maneira de reusa-las?

P

até onde eu sei o que vc fez teria que dar certo, ele te mostra algum erro em agum lugar?

aborges

Bem…

Acho q nao tem nada a ver, mas aih vao 3 consideracoes q vc deve observar para nao ter problemas:

1 - Sua variavel deve ser publica
2 - Construa o objeto ja na declaracao da variavel, para nao ter problemas de NullPointerException :

3 - Caso o valor nao vá mudar ( acho q nao vai mesmo, senao nao existiria um motivo para vc fazer isso ), cria variavel como static

Gizelma

mesmo colocando public, a mesma coisa não consigo usa-la em outro form, e dó um erro pouco claro

java.lang.IllegalStateException at javax.microedition.lcdui.Form.append(+20) at TestFormMIDlet.<init>(+783) at java.lang.Class.runCustomCode(+0) at com.sun.midp.midletsuite.MIDletSuiteImpl.loadInitialMIDlet(+21) at com.sun.midp.dev.DevMIDletSuiteImpl.loadInitialMIDlet(+9) at com.sun.midp.midlet.Scheduler.schedule(+31) at com.sun.midp.dev.DevMIDletSuiteImpl.schedule(+7) at com.sun.midp.Main.runLocalClass(+20) at com.sun.midp.Main.main(+68) Execution completed successfully 9808 bytecodes executed 6 thread switches 319 classes in the system (including system classes) 523 dynamic objects allocated (24476 bytes) 5 garbage collections (6712 bytes collected) Total heap size 500000 bytes (currently 471996 bytes free)

aborges

Esta sua explicacao resolve tudo!

O q vc quer fazer nao eh possivel…

Dah soh uma olhada:

append

public int append(Item item)

Adds an Ite....

<b>Parameters:</b>
    item - the Item to be added.
<b>Returns:</b>
    the assigned index of the Item
<b>Throws:</b>
    <b>IllegalStateException - if the item is already owned by a container</b>
    NullPointerException - if item is null

P

explicando detalhadamente: o método append insere um Item em um form e retorna o índice onde foi inserido aquele Item, se o Item for null dará a exception que vc postou no fórum

aborges

Pelo q eu li na api, qd o Item eh nulo, ele retorna um NullPointerException…

Dah uma olhadinha na doc q eu coloquei no post anterior …

P

:oops: é, tá certo… aborges, poderias responder o post que eu vou postar daqui a puco no fórum de J2ME… 8)

Gizelma

Mas o meu item está com valor, a unica coisa é que já está appendado a outro form, por isso perguntei se tem problema utiliar um item em varios forms.
E acho que tem sim, pq eu to lendo um livro de j2me e tem um grafico entre os itens e o form que coloca que um form pode ter varios itens mas um item só pode estar em um form.
Mesmo Assim
Brigadão pela ajuda…
:-*

Criado 13 de outubro de 2004
Ultima resposta 18 de out. de 2004
Respostas 10
Participantes 3