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();
我想将通过此方法获取的位于片段中的数据传递给扩展视图的 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();