2015-04-03 146 views
1

我想將通過位於一個片段中的此方法獲得的數據傳遞給擴展View的類(該類位於與我的項目關聯的庫項目中)。在片段Android將值傳遞給類

方法

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(); 

} 

類,它擴展視圖

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; 
} 
} 
+0

者均基於方法的對象,你爲什麼直接到達數據庫?你應該使用api – 2015-04-03 20:38:46

回答

2

爲什麼不只是讓你的WeekView類中的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; 
} 
+0

在這種情況下,我得到錯誤:'非靜態方法' – JJkk 2015-04-03 20:50:19

+0

使它靜態然後,如果你想。 – 2015-04-03 21:23:55

+0

我編輯我的帖子,因爲我想傳遞2個數組。你可以幫我嗎?謝謝 – JJkk 2015-04-08 19:42:26

0

也許您正在使用的類名,而不是這個類的對象調用的函數。像:

WeekView.setData(nome_op, cognome_op); 

您需要實例化一個變量

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

如果你想調用一個方法,無需創建這個類,你需要設置像靜態

public static String getSomething(); 
+0

我編輯我的帖子,因爲我想傳遞2個數組。你可以幫我嗎?謝謝 – JJkk 2015-04-08 19:42:18