Android - hogyan tudom egyik activy-bol a masikba beallitani a valtozo erteket?
letrehoztam a Bactivity.java egy setter:
private double v0 = 90.0;
..
..
public void setV0(double v0) {
this.v0 = v0;
}
Most az A_activity.java bol hogyan tudom beallitani az erteket?
igy probaltam,de nem jo
AnimatedView.setV0(1.0);
Add át az Intenttel az értékét (putExtra). Ahogy nézem, ez a 3. kérdésed a témával kapcsolatban, amit megelőzhettél volna, ha kezedbe veszel egy könyvet, vagy leírást. Pl ezt: [link]
Nem véletlenül hozzák létre ezeket a guide-okat, nincsenek túlbonyolítva, és célravezetően tanítanak.
Ez talan mar fog sikerulni,hogy atadjam a intentel az erteket. Csak az a baj,hogy meg egy activitynek is atkell adnom majd az erteket. Es itt szeretnem kihasznalnia getter,settert.
Csak nem tudom mi a baj ezzel,azota probaltam igy is atadni a masik activitynek a valtozo erteket, de nem siekerult,
Bactivity ref = new Bactivity();
ref.setV0(1.0);
ez pedig a szetter a Bactivityben,
public void setV0(double v0) {
this.v0 = v0;
}
De az Activity-t nem közvetlenül piszkálod. Nézd meg a linkelt példakódot, pont ezt csinálja, amit akarsz (csak stringet pakol be extraként). Mert ugye, az a kulcs, hogy amely intenttel indítod az activity-t, abba rakod be a putExtrával az átadni kívánt paramétereket (tehát: putExtra("kulcs", v0); ), majd az elinduló Activity onCreate függvényében először elkéred az indításhoz használt intentet a getIntent-tel, majd abból kiszeded a getDoubleExtrával a paramétert (tehát: double v0 = intent.getDoubleExtra("kulcs"); ).
Nem egy nagy was ist das, de ha programozni akarsz, akkor dokumentációt is olvasnod és értelmezned KELL. Ez nem opcionális dolog.
ezt idaig ertem.
De a programkod amibol kiindultam ugy van irva, ahogy mondtak itt ,hogy a Main.java inditja a AnimatedView.java fájlt. Ez az AnimetedView.java viszont nem extends Activity tipusu hanem: public class AnimatedView extends ImageView {
igy nem is engedi az AnroidStudio hogy generaljak oncreate-t. igy nem is tudom hogyan adjam át az erteket az intent-ol.
Olvasd el az első tutorialt, amit korábbi kérdésednél belinkeltél ( [link] ). AnimatedView ott nem csak úgy lebeg, hanem a Main Activity layoutjábal (main.xml) kerül beillesztésre.
Neked is ezt kell tenned: egy MenuActivity-t kell kreálnod, amelyben beállítod a dolgokat, majd a gombnyomásra Intenttel elindítod a BallActivity-t, amelynek a layoutjába helyezed el az AnimatedView-t. Ezt pedig a BallActivity-ből tudod kezelni, így annak az onCreated-jében fogod az extraként átadott paramétereket kiolvasni, annak megfelelően beállítani az AnimatedView-t...
Ugy erzem felig megvagyok azzal amit Te mondtál...
("amelynek a layoutjába helyezed el az AnimatedView-t" - itt ezt hagytam ugy ahogy volt irva a program, mert ez a resz ha jol tudom meg van csianlva).
....Pontosabban, az utolso hozzaszolasodban, addig a reszig hogy
("BallActivity-ből tudod kezelni, így annak az onCreated-jében fogod az extraként átadott paramétereket kiolvasni, annak megfelelően beállítani az AnimatedView-t...")
Most hogyan tudom beallitani az AnimatedView-t ?
Most igy nez ki a program:
menu.java
- alap activity ami elindul ,tartalmazza a gombokat es a edittextet
secondlayout.xml
- ez tartozik a menu.java-z
most jonnek a mar ismert két activity java fajl:
Main.java
AnimetedView.java
main.xml
- az xml ben , csak ezt a reszt lattam ahol van emlitve az AnimetedView a layoutban:
<com.authorwjf.bounce.AnimatedView
android:id="@+id/anim_view"
android:layout_height="fill_parent"
android:layout_width="fill_parent"/>
A forraskod igy nez ki
// menu.java - csak az intent van itt
public final static String EXTRA_MESSAGE = "com.authorwjf.bounce.MESSAGE";
...
...
public void onGetAnimate(View view) {
Intent intent = new Intent(this, Main.class);
EditText e1 = (EditText)findViewById(R.id.pociatocnaRychlost);
String message = e1.getText().toString();
intent.putExtra(EXTRA_MESSAGE, message);
startActivity(intent);
}
// main.java file
package com.authorwjf.bounce;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class Main extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intent = getIntent();
String message = intent.getStringExtra(menu.EXTRA_MESSAGE);
//double d=Double.parseDouble(message);
}
}
vegre sikerult :D
koszi szepen !!
Az a baj, hogy úgy próbálsz android appot írni, hogy alapvető programozási ismereteid sincsenek, nem hogy Java vagy OOP például.
Ebből csak hatalmas gányolás lesz, ahogy példa is mutatja.
Alapozni kellene először.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!