私のアンドロイドアプリケーションでは、ラズベリーパイの温度を読みたいと思います。サーバーから、変数はdouble型として返されます。 XMLから、文字列として返されます。したがって、私はStringまたはdoubleの場合、値を設定できるジェネリックセッターを作成しないのはなぜだろうと思っていました。データバインディングライブラリを使用してStringまたはDoubleにすることができる、androidの変数をバインドする方法はありますか?
@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);
}
しかし、私は、私がいることが分かった。このセッターを作成した後:
注:エラーがないとき、このような観察可能なクラスとして配列やジェネリック型は、エラーが表示される場合がありますが。
私は不思議に思っていました。それは一般的な変数でそれを解決することは可能ですか?もしそうなら、それを解決する最良の方法でしょうか?
これは私が探していた答えです。 ViewModelの代わりにViewでコードの書式を設定することに疑問がありました。しかし、これを見た後、私はそれがより良い場所だと思う傾向があります。なぜなら、コードが少なくなり、保守が容易になるからです。 – user3473161