複数の値を保持しておける電卓のようなものを作っていて数値を「全てクリアする」「クリアする」「1つもどる」といった機能を実装してみたのですが
「全てクリアする」「クリアする」ボタンを押したときにすぐにTextViewに反映されずに次に何かのボタンを押した際にTextViewへの反映がされてしまって困っています。
「1つもどる」に関しては問題なくすぐに反映されています。
どこかおかしなところを教えていただけるとありがたいです。
追記・・・text = ""と空文字を設定しているところがいけないらしく、"0"にしたら想定の挙動になりました。しかし空文字を設定したいため何か対応方法があれば教えてください。
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val textViews = listOf<TextView>(t1,t2,t3,t4,t5,t6) val myView = MyView(textViews) MyKey(myView ,this) } } コード
class MyKey(val myView: MyView, val activity: Activity) { init { activity.clear.setOnClickListener { clear() } activity.allClear.setOnClickListener { allClear() } activity.delete.setOnClickListener { delete() } } //クリア fun clear() { myView.clear() } //全てクリア fun allClear() { myView.allClear() } //1つ戻る fun delete() { myView.delete() } } コード
class MyView(val textViews: List<TextView>) { var position = 0 //クリア fun clear() { textViews[position].text = "" } //全てクリア fun allClear() { for (textView in textViews) { textView.text = "" } } //1つ戻る fun delete() { var s = textViews[position].text if (s.length <=1){ s = "0" }else{ s = s.substring(0, s.length - 1) } textViews[position].text = s } } コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/08 10:00