如何将字符串传递给单独的java.class

时间:2019-05-02 19:45:33

标签: java android string class variables

我正在尝试将字符串从我的主要活动传递到单独的类 没有正在运行的活动。

我研究了使用intent和bundles传递变量,但是我看过它们使用了两个活动

我找到了一个与我尝试做的事情相似但相反的视频,无法正常工作。 (https://www.youtube.com/watch?v=CSifkubnE-E

现在字符串更改了,所以我不能使用静态 而我的second.java没有上下文可以传递。

下面是我想做的事情的基本表示。

main.java

    public class dosomething(){
        String localvar;
        localvar = mystring
    }

second.java

class recibos(models.Model):
_name = "tecnop.recibos"
_rec_name = "num_recibo"

num_recibo = fields.Integer('Número de recibo', size=20)
fecha = fields.Date('Fecha')
# Conecta con módulo de productos
ids_productos = fields.One2many('tecnop.productos', 'id_producto', 'Productos')

# Relación con módulo de proveedores
ids_proveedores = fields.Many2one('tecnop.proveedores', 'Proveedor')
total = fields.Float('Total', size=400, readonly=True, store=True, compute='calcular_total')
subtotal = fields.Float('Subtotal', size=400, readonly=True)
impuesto_total = fields.Float('Impuesto', size=400, readonly=True)

@api.multi
@api.depends('ids_productos.nombre', 'ids_productos.precio')
def calcular_total(self):
    registros = self.env['tecnop.productos'].search([('id_producto', '=', self.id)]) 
    self.total = 0
    self.impuesto_total = 0
    self.subtotal = 0
    for registro in registros:
        if registro.precio:
            impuestos = self.env['tecnop.impuestos'].search([('id_impuesto', '=', registro.id)]) 
            for impuesto in impuestos:
                if impuesto.impuesto:
                    registro.impuesto = registro.precio * impuesto.impuesto
                    self.total = (registro.precio * registro.cantidad) + self.total
                    self.impuesto_total = registro.impuesto + self.impuesto_total
                    self.subtotal = self.total - self.impuesto_total

为清楚起见,我想将一个变量从main.java传递给没有上下文的second.java。我不想在我的main.java中添加second.java类,我想将它们分开(我读过的一些东西说合并它们)。我该怎么办?

3 个答案:

答案 0 :(得分:0)

我没有收到以下声明。

  

现在字符串更改了,所以我不能使用静态

您可以更新static值。您无法更新final的值。另外,您需要以某种方式创建连接。您可以创建另一个类并共享静态变量

class ThirdClass {
        public static String sharedString;
    }

    class Main {
        ThirdClass.sharedString = "somevalue";
    }

    class Second {
        localVar = ThirdClass.sharedString;
    }

答案 1 :(得分:0)

您可以通过以下方式进行操作:

@q{Da oggi sarai conosciuto anche come @b{"guds morder"}b@: uccisore di Dei}q@, furono le ultime parole che sentì.

如果创建一个新对象,并且创建该字符串是必需的-> great,请将该字符串作为构造函数中的必要条件。 (第一个版本)

如果您创建一个新对象,并且创建该字符串不是必需的-> great make a property(第二版)

很少需要使用第三版(您可以在不创建对象的情况下设置字符串),而在Java中则应完全避免使用第四版。

答案 2 :(得分:-1)

在主.java文件中,添加以下内容:

second example = new second("variable");

然后可以在您的main方法内的任何地方引用它。例如:

example.setString("variable);

然后,在第二个.java文件中,您需要添加以下内容:

public class second

{

   private String variable;

   public void setString(String pass)

   {

   variable = pass

   }

}

这样,您传递给主.java文件中的示例变量的所有内容 将会传递给setString方法。