Android 将值传递给 class

Android pass values to class

我想将通过此方法获取的位于片段中的数据传递给扩展视图的 class(此 class 在与我的项目关联的库项目中).

片段中的方法

 public void checkOperatori(){
    SQLiteDatabase db = new DatabaseHelper(getActivity()).getReadableDatabase();
    String OPERATORI = "SELECT DISTINCT(nome), cognome FROM Operatori";
    Cursor cur = db.rawQuery(OPERATORI, null);
    int count = cur.getCount();
    String[] nome_op = new String[count];
    String[] cognome_op = new String[count];
    for(int i=0; i<count; i++) {
        cur.moveToNext();
        nome_op[i] = cur.getString(0);
        cognome_op[i] = cur.getString(1);
        mWeekView.setData(nome_op[i], cognome_op[i]);
    }


     cur.close();
     db.close();

}

Class 扩展视图

public class WeekView extends View {
public void setData(String nome_op[], String cognome_op[])
{
    this.nome_op = nome_op[];
    this.cognome_op = cognome_op[];
}
public String get_nome_op()
{
    return nome_op;
}
public String get_cognome_op()
{
    return cognome_op;
}
}

为什么不直接在您的 WeekView class 中制作 getter/setter 方法?

public class WeekView extends View {
    ...
    private String nome_op, cognome_op;
    public void setData(String nome_op, String cognome_op)
    {
        this.nome_op = nome_op;
        this.cognome_op = cognome_op
    }
    public String get_nome_op()
    {
        return nome_op;
    }
    public String get_cognome_op()
    {
        return cognome_op;
    }
}

然后:

...
while (cur.moveToNext()) {
    String nome_op = cur.getString(0);
    String cognome_op = cur.getString(1);
    YOURWEEKVIEW.setData(nome_op, cognome_op);
    }
...

编辑:

public void setData(String[] nome_op, String[] cognome_op)
{
    this.nome_op = nome_op;
    this.cognome_op = cognome_op;
}
public String[] get_nome_op()
{
    return nome_op;
}
public String[] get_cognome_op()
{
    return cognome_op;
}

可能您正在使用 Class 名称而不是此 class 的对象调用函数。喜欢:

WeekView.setData(nome_op, cognome_op);

您需要实例化一个变量

WeekView weekView = new WeekView();
weekView.set(nome_op, cognome_op);

如果你想调用一个方法而不创建这个class的对象,你需要像static

一样设置方法
public static String getSomething();