この質問は以前に聞かれたことがあることは知っていますが、私の場合は違って見えます。 10進数のTextViewがあり、これらの数値は毎回変更されます。その下にボタンがあり、それをクリックすると、textviewで10進数を取得し、ポイントとして追加する必要があります。
これは私が言いたいことです:テキストビューには0.3が表示されることがあります。ボタンをクリックすると、この0.3を取得してポイントに追加する必要があります。テキストビューが0.8を表示している場合、ボタンはその0.8をポイントに追加し、ポイントが累積します。以下は私が試したものです:
私は
MainActivity.class
を持っています
onClick listener
のこのコードでボタンの:
String getgPoints = (String)points.getText();
data.edit().putFloat("count", parseFloat(getPoints(preview.this) + getgPoints)).apply();
これはボタンクリックリスナーにありますが、問題はこれです:ポイントは追加されませんが、たとえば、テキストビューが0.3を表示している場合、ボタンをクリックするとコインバランス1回目のクリックで0.3、2回目のクリックで0.33、3回目のクリックで0.333などのように動作しますが、1回目のクリックで0.3、2回目の0.6、3回目の0.9として追加します。 4番目の1.2など。
だから今私の質問は、どうすればコードを修正できますか?
回答 3 件
浮動する2番目の文字列を解析していません
String s_number = points.getText().toString(); float f_number = Float.parseFloat(s_number); //above is the parsing code sum += f_number;
ここで、文字列はfloatに解析されます。
関連した質問
- 電卓アプリでDecimalFormatのエラーを解決する方法
- GPIO制御にJavaクラスを使用して、AndroidOSで実行されるアプリケーションを作成する方法
- Android(Kotlin):オブザーバーのタイプの不一致
- Androidプロジェクトで使用されるJARからのロギング
- NordicThingy:52を使用したAndroid BluetoothGATTタイムアウト
- 応答を処理するKotlinRetrofit
- 作成中のスレッドがデーモンである場合に限り、Javaスレッドはデーモンですか?
- AlertDilogからMainActivtyにデータリターンを渡します
- RectFがCanvasの境界線から外れます
- (解決済み)デフォルトのandroid RecyclerView ViewHolder NPE shouldIgnore()
フロートをフロートに追加します(別のフロートに追加する前にgetgPointsをフロートに変換する必要があります)。
テキストが常に有効な
float
としてフォーマットされることを保証できない場合は、NumberFormatExceptionをキャッチすることを忘れないでください 。