Metin Alanından Sayılar
Coddy'nin Flutter Journey'sinin Etkileşimli Uygulamalar bölümünün bir parçası. Ders 25 / 34.
Bir alan, rakamları gösterse bile her zaman bir String tutar: '12' metindir ve '12' * 7 84 etmez. Bununla hesaplama yapmak için onu bir int türüne dönüştür:
int.tryParse('12') // 12
int.tryParse('hello') // nullnull, "değer yok" anlamına gelir: 'hello' bir sayı değildir, dolayısıyla ortada bir sayı yoktur. Sonucun türü int?, yani bir int veya null'dır. Hesaplama yapmadan önce, ?? ile kullanmak üzere ona bir değer ver:
int age = int.tryParse(value) ?? 0;a ?? b ifadesini "a null ise b, değilse a" diye oku. "try" olmadan int.parse de vardır, ancak sayı olmayan bir metinle karşılaştığında uygulamayı bir hatayla durdurur ve insanlar her türlü şeyi yazabilir.
Telefonda keyboardType: TextInputType.number, rakamlardan oluşan bir klavye açar; böylece insanlar neredeyse hiç harf yazmaz.
Görev
Orta- Alanı sayı klavyesini açacak şekilde ayarla.
onChangediçinde metniint.tryParsekullanarakinttürüne dönüştür; sayı değilse0kullan ve değeri_ageiçinde tut.- Yaş 5 olduğunda, yaşın 7 ile çarpımını kullanarak
That is 35 in dog yearsgöster.
Kendin dene
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: const HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({super.key});
@override
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
String _ageText = '';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('Dog Years')),
body: Padding(
padding: const EdgeInsets.all(24),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
TextField(
decoration: const InputDecoration(
labelText: 'Your age',
border: OutlineInputBorder(),
),
onChanged: (String value) {
setState(() {
_ageText = value;
});
},
),
const SizedBox(height: 24),
Text('That is ? in dog years', style: const TextStyle(fontSize: 24)),
],
),
),
);
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Etkileşimli Uygulamalar bölümündeki tüm dersler
7Anahtarlar ve Kaydırıcılar
Bir Anahtarla Açıp KapatmaBir Onay Kutusunu İşaretlemeKaydırıcıyla Bir Değer Seçme3Durum Tutan Widget'lar
Kendi Widget SınıfınızSnackBar GöstermesetState Ekranı Yeniden ÇizerStatefulWidget YazmaSayacı Artırma ve AzaltmaHot Reload Durumu Korur6Metin Alanları
İlk Metin AlanınızYazı Yazmaya Tepki VerinBir Alanı Controller ile OkumaMetin Alanından SayılartoStringAsFixed ile Ondalık SayılarKendi başına pratik yap: Online Flutter derleyicisi