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?
Como Descarregar um stringItem em 2 forms em um Midlet
10 Respostas
explique-se melhor…
: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?
até onde eu sei o que vc fez teria que dar certo, ele te mostra algum erro em agum lugar?
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
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)
Esta sua explicacao resolve tudo!
O q vc quer fazer nao eh possivel…
Dah soh uma olhada:
appendpublic 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
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
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 …
:oops: é, tá certo… aborges, poderias responder o post que eu vou postar daqui a puco no fórum de J2ME… 8)
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…
:-*