ボタンをおしてTextViewの内容を変える
目的 : ボタンを配置して, おすとTextViewの内容を変更する
というわけで、ボタンを配置して、ボタンを推すと、テキストが変わるようにする。
手順1 : ボタンを配置
Wigetの中のButtonをドラッグ&ドロップ
TextViewが小さかったので、設定で大きくします。
Propertyの中のtextSizeをいじる
ここで、メモとしては
単位はsp(Scale-independent Pixels).
これはフォントなどの大きさを示す単位である、らしい。
dp(Density-independent Pixels)
とかもあるらしい(これは画面の距離とかの単位らしい)
なんかいろいろ単位がある
詳しいことはここで確認↓
【Android】今さら聞けない、px、sp、dip、dpの違い
手順2 : idの登録
ボタン、TextViewをダブルクリックすると以下のように
表示している内容を示す"text"とこのTextViewを示すidがある。
それぞれbuttonとTextViewのidを登録しておく
僕の場合
button : myButton
TextView : myTextView
と登録した。
手順3 : buttonのメソッド登録
ボタンのプロパティに"onClick"というものがあり
クリックしたときにメソッドを呼び出すことができる.
今回はtextの中を変更するので
"changeLabel"など命名
手順4 : MainActivity.javaの中でchangeLabelを登録
projectの中のjavaの中にMainActivity.javaがありここの中で
先ほど命名したchangeLabelの中身を書いていく
ここで、以下のソースを打つとViewクラスとTextViewクラスがインポートされていないとエラーが出るのでAlt+Enterで導入することができる。
public voidは、返り値なし(void)のメソッドで
クリック→changeLabelにView型のviewという変数が入る.
中に何が入っているかわからん(True or Falseのbooleanかな?)
TextView tv = (TextView)findViewById(R.id.myTextView)-①
はなんか、idがmyTextViewのものを見つけるみたいな文
tv.setText("");-②
でテキストの中身を変える。
まぁ、TextViewという登録されているクラスがあって
そのメソッドにsetTextというメソッドがあるからtvはこのメソッドを使えると。
恐らく、①でTextView型のtvという名前のオブジェクトを生成していると思う。
そしてコンパイル!
でました奥さん。
エラーですよ。
なにやら、@+idの書式で書いてねとのことらしい
というわけで調べました
ということでid=@+id/のところを
id=@+id/mainに変更。
なにこれぇ
調べるとエミュレータを動かすHDDが容量不足とのことらしい
ええそうです。2Gしか残っていないOSのHDDが
何故か700Mになっていました。
ということで、色々アンインストールや消したりして、
3Gに回復。
コンパイル!!!!!
↓
やれやれだぜ
まとめ
テキストの中身をボタンで変えました