對於我的android應用程序,我想讀取我的覆盆子pi的溫度。從服務器,變量返回爲double。從XML中,它以字符串形式返回。所以我想爲什麼我不能創建一個通用的setter,如果它是一個String或double,就可以設置該值。如何在android中綁定一個可以是String或double的變量與數據綁定庫?
@Bindable
public String getCPUTemperature(){
return Double.toString(mCPUTemp);
}
/**
* Sets the CPU temperature for the device view model.
* @param <T> The generic parameter T accepts a String as wel as a Double to set the available memory.
*/
public <T> void setCPUTemperature(T CPUTemp){
if(CPUTemp.getClass().equals(String.class))
this.mCPUTemp = Double.parseDouble((String)CPUTemp);
else if(CPUTemp.getClass().equals(Double.class))
this.mCPUTemp = (double)CPUTemp;
notifyPropertyChanged(BR.cPUTemperature);
}
但經過我創造了這個二傳手我發現:
注:當沒有錯誤數組和泛型類型,如可觀察類,可能會顯示錯誤。
所以我開始懷疑。是否有可能用一個通用變量來解決它,如果是這樣,是解決它的最好方法嗎?
這是我正在尋找的答案。我對View中的代碼格式化了懷疑,而不是ViewModel。但看到這個之後,我傾向於認爲它是更好的地方,因爲它也導致了更少的代碼,並且應該更容易維護。 – user3473161