繁体   English   中英

无法从我的MainActivity访问另一个类中的方法

[英]Can't access methods in another class from my MainActivity

我正在开发一个Android应用程序。 简单的东西。 仅一个视图。 我正在使用两个软件包,寿。 助手和主要的。 我创建了该类“ produto”来进行迭代,因此我可以创建一个ArrayList并仅对项目中的一些示例进行硬编码。 但是,Android Studio(我正在使用3.0)不允许我为arraylist的元素调用设置方法。

这是我MainActivity.java的一部分

package com.example.khovis.mqtt;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.GridLayout;
import android.widget.LinearLayout;
import android.widget.TextView;

import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallbackExtended;
import org.eclipse.paho.client.mqttv3.MqttMessage;

import java.util.ArrayList;

import helpers.MQTThelper;
import helpers.Produto;

public class MainActivity extends AppCompatActivity {
    MQTThelper mqttHelper;
    GridLayout myLayout = null;
    TextView dataReceived;
    ArrayList<Produto> lista = new ArrayList<Produto>();

    Produto coisa = new Produto("teste", 300 );

    lista.add(coisa);
    ...

这是我的班级Produto

    package helpers;

/**
 * Created by khovis on 26-11-2017.
 */

public class Produto {

    private double price;

    private String name;

    public Produto(String nome, float v) {
        setPrice(v);
        setName(nome);
    }


    public double getPrice() {
        return price;
    }


    public String getName() {
        return name;
    }


    public void setPrice(double price) {
        this.price = price;
    }


    public void setName(String name) {
        this.name = name;
    }

}

现在,它说对象coisa是一个类(显然不是)。 这是一门未知的课。

如果我将“ coisa”更改为“ new Produto()”,则表示无法解析符号“ add”

我以前(去年)使用过Java,但是我从未见过像这样的怪异东西。

有谁知道如何解决这个问题? 我只想将对象“ coisa”添加到arrayList

感谢您的关注

我的猜测是您正在尝试在方法之外添加“ coisa”。 也许在onCreate()方法中执行此步骤。 另一种方法是像这样将其直接添加到ArrayList

ArrayList<Produto> lista = new ArrayList<Produto>() {{
    add(new Produto("teste", 300));
}};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM