Mijenjanje vrijednosti varijable pomoću button-a

poruka: 8
|
čitano: 4.982
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
Mijenjanje vrijednosti varijable pomoću button-a

Pozdrav,

 

nov sam u ovom području, a razvijam aplikaciju za Android OS koja koristi Google Maps API v2. API nudi mogućnost mijenjanja refresh intervala za dobivanje trenutne lokacije, u kôdu ispod:

public class MainActivity extends FragmentActivity implements
LocationListener,
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener,
GoogleMap.OnMapLongClickListener,
OnClickListener
{
private static long INTERVAL = 1000 * 60;// = 60 000 milisekundi = 60 sekundi
private static long FASTEST_INTERVAL = 1000 * 60;// 1 minuta

 

INTERVAL i FASTEST_INTERVAL koriste se ovdje:

protected void createLocationRequest() {
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(INTERVAL);
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}

 

Mene zanima kako mogu omogućiti korisniku da on sam odabire vrijednosti INTERVAL i FASTEST_INTERVAL, recimo pomoću dva button-a na ekranu, jedan koji bi smanjivao INTERVAL, drugi koji bi povećavao isto.

 

Probao sam ovom metodom, ali samo se ispiše Toast poruka na ekranu, nema utjecaja na varijablu INTERVAL:

public void On_clickSmanji(View V) {
INTERVAL /= 2;
String porukaSmanji = "Smanjio INTERVAL na :" + INTERVAL;
Toast.makeText(this, porukaSmanji, Toast.LENGTH_SHORT).show();
}

NVIDIA: The Way It's Meant to Be Played :P
Poruka je uređivana zadnji put sri 13.5.2015 16:46 (gta_4).
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: Mijenjanje vrijednosti varijable pomoću button
gta_4 kaže...

Pozdrav,

 

nov sam u ovom području, a razvijam aplikaciju za Android OS koja koristi Google Maps API v2. API nudi mogućnost mijenjanja refresh intervala za dobivanje trenutne lokacije, u kôdu ispod:

public class MainActivity extends FragmentActivity implements
LocationListener,
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener,
GoogleMap.OnMapLongClickListener,
OnClickListener
{
private static long INTERVAL = 1000 * 60;// = 60 000 milisekundi = 60 sekundi
private static long FASTEST_INTERVAL = 1000 * 60;// 1 minuta

 

INTERVAL i FASTEST_INTERVAL koriste se ovdje:

protected void createLocationRequest() {
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(INTERVAL);
mLocationRequest.setFastestInterval(FASTEST_INTERVAL);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}

 

Mene zanima kako mogu omogućiti korisniku da on sam odabire vrijednosti INTERVAL i FASTEST_INTERVAL, recimo pomoću dva button-a na ekranu, jedan koji bi smanjivao INTERVAL, drugi koji bi povećavao isto.

 

Probao sam ovom metodom, ali samo se ispiše Toast poruka na ekranu, nema utjecaja na varijablu INTERVAL:

public void On_clickSmanji(View V) {
INTERVAL /= 2;
String porukaSmanji = "Smanjio INTERVAL na :" + INTERVAL;
Toast.makeText(this, porukaSmanji, Toast.LENGTH_SHORT).show();
}

 itekako ima utjecaja na varijablu INTERVAL, ali nema na mLocationRequest koji tevi valjda obavlja posa...

dakle, probaj u On_clickSmanji pozvat i mLocationRequest.setInterval(INTERVAL)

16 godina
neaktivan
offline
Re: Mijenjanje vrijednosti varijable pomoću button
mariik kaže...

 itekako ima utjecaja na varijablu INTERVAL, ali nema na mLocationRequest koji tevi valjda obavlja posa...

dakle, probaj u On_clickSmanji pozvat i mLocationRequest.setInterval(INTERVAL)

Hvala na odgovoru.

Probao sam pozvati sa button-om također i 

 

mLocationRequest.setInterval(INTERVAL);

 

no stvar je ista kao da je i ne pozivam. Dakle Toast message se pojavljuje sa promijenjenom varijablom, dok sam INTERVAL ostaje na zadanih 60 sekundi.

NVIDIA: The Way It's Meant to Be Played :P
Poruka je uređivana zadnji put sri 13.5.2015 22:36 (gta_4).
13 godina
offline
Mijenjanje vrijednosti varijable pomoću button-a

private static long INTERVAL = 1000 * 60;// = 60 000 milisekundi = 60 sekundi - vamo ti je varijabla static, probaj napraviti novu varijablu ovdje INTERVAL /= 2;

long interval = INTERVAL/2;

String porukaSmanji = "Smanjio INTERVAL na :" + interval ;
Toast.makeText(this, porukaSmanji, Toast.LENGTH_SHORT).show();

Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Re: Mijenjanje vrijednosti varijable pomoću button
brka911 kaže...

 

 public void On_clickPovecaj(View v) {
long interval = INTERVAL += 10000;
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(interval);
String porukaPovecaj = "INTERVAL povecan na: " + interval;
Toast.makeText(this, porukaPovecaj, Toast.LENGTH_SHORT).show();
}

 

Evo ovako mi izgleda metoda koju poziva button. I dalje nema pomaka, jedina vrijednost koju on vidi je ona zadana prilikom startanja aplikacije.

NVIDIA: The Way It's Meant to Be Played :P
16 godina
neaktivan
offline
Re: Mijenjanje vrijednosti varijable pomoću button
gta_4 kaže...
brka911 kaže...

 

 public void On_clickPovecaj(View v) {
long interval = INTERVAL += 10000;
mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(interval);
String porukaPovecaj = "INTERVAL povecan na: " + interval;
Toast.makeText(this, porukaPovecaj, Toast.LENGTH_SHORT).show();
}

 

Evo ovako mi izgleda metoda koju poziva button. I dalje nema pomaka, jedina vrijednost koju on vidi je ona zadana prilikom startanja aplikacije.

 ne znan kako točno kod funkcionira, ali rekao bih da ovo ne radi zato jer ovdje kreiraš novi objekt i njemu mijenjaš interval, a vrlo vjerojatno ti ostatak klase (neki view u activityu ili pak neka druga klasa koristi stari objekt.

Dakle, probaj pobrisat ovu liniju sa new LocationReq...

i ne tribaš uvodit novu varijablu, nakon šta pozoveš setInterval, svaka promjena varijable nema više nikakvog utjecaja na mLocationRequest.

13 godina
offline
Mijenjanje vrijednosti varijable pomoću button-a

.setFastestInterval(FASTEST_INTERVAL); - ima veci prioritet nego, .setInterval(INTERVAL); - bez obzira koliko ti smanjivao/povecavao interval app ce uvijek "povuci" FASTEST_INTERVAL. 

Obrisi .setFastestInterval(FASTEST_INTERVAL); iz metode protected void createLocationRequest() i stavi je na public void On_clickSmanji(View V) metodu.

I probaj da ne koristis konstante nego samo upisi .setFastestInterval(1000*10); i .setInterval(1000*60);

 

Poruka je uređivana zadnji put pet 15.5.2015 9:54 (brka911).
Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
Mijenjanje vrijednosti varijable pomoću button-a

Ništa, nema promjene i gotovo... Stvarno ne razumijem kako se mijenjaju te opcije. Jer ne postoji samo jedna opcija, ima ih puno:

.setInterval(INTERVAL);

.setFastestInterval(FASTEST_INTERVAL);

.setSmallestDisplacement(meters_here);

...

 

Zna li netko kako se to može promijeniti klikom na button?

NVIDIA: The Way It's Meant to Be Played :P
Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice