Посылать переменные другому activity Андроид Студио

Я программирую App, в которой я хочу, которая, нажав кнопку, посылала бы переменные в Activity, но без того, чтобы открывался следующий activity, так как это - тип тележка продаж где acomulan продукты.

Я хочу, чтобы открылся activity, когда пользователь будет хотеть.

Спасибо

public void pancakes(View v){
    control+=1;
    pedido.setText(control+"");
    Toast t = Toast.makeText(getApplicationContext(),"Producto agregado", Toast.LENGTH_SHORT);
    t.show();
    String nombre = "Pancakes";
    double precio=60.00;
}

Этот код моей кнопки, я это определяю с onClick, и последние две переменные (имя, цена) - та, которую я хочу послать activity, но если открывать это.

И так у меня есть несколько кнопок и то, что я хочу, состоит в том, чтобы накопилась информация, и после показывать ее в другом activity

1
задан 19.10.2016, 22:27
3 ответа

То, что тебе рекомендую я, согласно которому ты хотел, это

public class Producto implements Serializable 
public class Producto(){
    String nombre;
    double precio;

   //Aqui haces los constructores y get and set
}

public class MainActivity extends Activity {
    List<Producto> productos = new ArrayList<Producto>();
    public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      //Tu codigo
    }
    //Me imagino que la funcion de tu boton cuando agrega el producto
    Button addProducto= (Button) findViewById(R.id.addProducto);
    addProducto.setOnClickListener( new OnClickListener() {

        @Override
        public void onClick(View v) {
            Producto producto = new Producto("Producto prueba", 60.00);
            productos.add(producto);
            Toast t = Toast.makeText(getApplicationContext(),"Producto agregado", Toast.LENGTH_SHORT);
            t.show();
        }
    });

    //boton para ver el carrito
    Button verCarrito= (Button) findViewById(R.id.verCarrito);
    verCarrito.setOnClickListener( new OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getBaseContext(), Carrito.class);
            intent.putExtra("Productos", productos);
            startActivity(intent)
        }
    });
}

В другом activity

public class CarritoActivity extends Activity {
    List<Producto> productos = new ArrayList<Producto>();
    public void onCreate(Bundle savedInstanceState) {
        productos =(ArrayList<Producto>)getIntent().getSerializableExtra("Productos");
    }
}
1
ответ дан 24.11.2019, 13:06
  • 1
    И в одном другой activity как работа эта договоренность? – J. Torres 14.10.2016, 19:20
  • 2
    Равного способа, я издаю мой код. – sioesi 14.10.2016, 19:20
  • 3
    Вопрос, твой м и # 233; tod .add () Продукт определяется в классе? – J. Torres 14.10.2016, 20:21
  • 4
    Что реализует м и # 233; каждый .add () – J. Torres 14.10.2016, 20:21
  • 5
    Нет, метод add свойственный объектам List или ArrayList – sioesi 14.10.2016, 20:22

то, что ты желаешь, состоит в том, чтобы посылать объекты между Активностью, в этом случае объекты Продукт в ArrayList, осуществляется, таким образом, ты создаешь твой ArrayList объектов и это посылаешь в Intent посредством .putExtra():

   Intent intent = new Intent(MainActivity.this, SegundaActivity.class);
                intent.putExtra("Productos", productos);
                startActivity(intent);

, Чтобы получать ArrayList объектов Продукт в Activity, осуществляется, таким образом:

ArrayList<Producto> lista = (ArrayList<Producto>) getIntent().getSerializableExtra("Productos");

Однако существуют что-то очень важное, в чем ты нуждаешься, чтобы это реализовывать, и он состоит в том, что твой объект Продукт должен осуществлять класс Serializable :

public class Producto implements Serializable {
0
ответ дан 24.11.2019, 13:06

Ты не нуждаешься в том, чтобы послать activity, можешь sobrescribir инстанция Application твоего приложения и там можешь помещать данные, которых ты хочешь, как твоя тележка покупок, ты можешь видеть как в этом соединение

0
ответ дан 24.11.2019, 13:06

Теги

Похожие вопросы