» »

[Android] prenos spremenljivk

[Android] prenos spremenljivk

g333kk ::

Poskušal sem narediti programčič ki premiga spremenljivke z 1 clasa in jih uprabja v drugem na principu:
Vendar mi aplikacijo crasha ima kdo idejo zakaj in kaj je narobe z takim načinom v c++ mi je takle način deloval ..

public class class1{
int a=0;
int b=5;

a=b*10;

}
public class class2{
class1 bip;
bip.a=5;

}

MajorM ::

Verjetno so po defaultu tipa private.
Poizkusi pri definiciji a in b dodati public.

win64 ::

a in b so privatne spremenljivke in nemogoče, da ti je to sploh prevedlo v c++.
Podaj celoten primer.

Spura ::

niso privatne ampak so package scoped

g333kk ::

Jup public je bilo v c++ ali tudi tukaj rabim public ali pa drugače je to pravilien način dostopanja

MajorM ::

Se tudi še jaz učim, ampak kolikor jaz razumem to ni "najlepši" način. Bolj lepo naj bi bilo da so spremenljivke private potem pa z "get" in "set" metodami spreminjaš vrednosti.

g333kk ::

At the onStart I only see a variable p declared and initialized. And your a variable is declared in the Panel class which extends SurfaceView and that means you can't have a onStart method there! - yugidroid 31 mins ago

Mi lahko en to razloži kaj je v tem narobe po tej razlagi, če pa se potrebuje kodo jo pa pošljem na zasebca..

Mavrik ::

Prilepi kodo na pastebin če je dolga in jo objavi.
The truth is rarely pure and never simple.

g333kk ::

Ekola: + napake..
http://pastebin.com/WH9LLC47

g333kk ::

eto sem reku da je dolgo zdej pa noben ne odgovri ;( Sorčly ne morm pomagat, žal..

Mavrik ::

Preveč smo šokirani nad obupno preglednostjo tvoje kode. Zakaj imaš ime paketa "aa.bb.cc", spremenljivke "a", "b" ? Kak naj kdorkoli (vključno s tabo čez en teden) sploh ve kaj bi naj te stvari bile in delale? Daj potrudi se malo. Isto glede kupa zakomentirane kode, ki ti dela samo zmedo.

NullPointerException pa dobiš ker je "a" v "Palete" enak null, saj ga nikjer ne instaciraš ali določiš.
The truth is rarely pure and never simple.

Zgodovina sprememb…

  • spremenil: Mavrik ()

g333kk ::

Sicer pa kaže na našake v tej vrstici:
    		for(int i = 0; i<a.number_of_graphicObjects; i++){


in pa

                   _panel.onDraw(c);
                  

Ampak mislim da je glavni problem AndroidPaint a; ki je v clasu Palete,( fora tega classa je da dostopam v classu palete do spremenljivk ki so v clasu AndroidPaint, in napake so se pojavile šele takrat)
Prosim za čimprejšni odgvor, prosim, ker trenutno sem se znašel v slepi pegi ulici, mogoče način kaj bi bilo potrebno popravit.. Včasih je bil class palete podclass AndroidPaint sedaj sem zaradi xml code da dostopam do tele kode ustvaril sam class in naredil da spremenljivke dostopajo med seboj:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#FF0000"
    >

 <aa.bb.cc.Panel
           android:id="@+id/yourID"
  android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
          />

</LinearLayout>

hvala že v naprej..

Jutri bom popravljal kodo samo zanima me na kak stil jo naj popravim ...
Potem pa me zanima na kaj naj nastavim v paleti spremenljivko AndroidPaint a;

Zgodovina sprememb…

  • spremenilo: g333kk ()

Mavrik ::

Ja, "AndroidPaint a" je definitivno tvoj problem, saj je nikjer ne inicializiraš. Ne vem skod si skopiral kodo sam ti nekaj pomembnega manjka.

Verjetno te mede dejstvo, da se v C++ ko deklariraš spremenljivko takoj požene privzeti konstruktor in jo inicializira na instanco objekta, v Javi pa je "a" preprosto null.

AndroidPaint v dokumentaciji ne obstaja, tak da nimam pojma s kod točno ti dobiš ta objekt in kako ga hočeš inicializirati.
The truth is rarely pure and never simple.

g333kk ::

public class AndroidPaint extends Activity { to je to je čisto prva zadeva,..Inicializerati ga hočem tako da bodo spremenljivke med seboj obratovale..

win64 ::

Če že govorimo o podobnostih pri inicializaciji, bi bilo potrebno opozoriti, da java za dostop do instanc razredov pozna samo reference(npr. object a), medtem ko pri c/c++ imaš tako kazalce(nekako primerljivo z referencami(npr. object * a;)) kot lokalne instance(pri katerih nam za klice ustreznih konstruktorjev in destruktorjev ni potrebno skrbeti)(npr. object a).


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c#] dostopanje spremenljivk med classi

Oddelek: Programiranje
61103 (803) japol
»

[Java] "Uničenje" objekta ?

Oddelek: Programiranje
111209 (901) shadeX
»

C# in servisi

Oddelek: Programiranje
71093 (653) mihies
»

android črta

Oddelek: Programiranje
412394 (1665) g333kk
»

[android] vstavljanje slike

Oddelek: Programiranje
71234 (1131) messi

Več podobnih tem