タップすると石が置けるようになった

スポンサーリンク
スポンサーリンク

石は置けるが、こっから拡張していけるんだろうか。

スポンサーリンク

石を置けた。

最初タップすらできなかった

まぁ、文字を表示する用だもんな、それをタップしてどうのこうのなんて普通やらないんだろうな、とちょっと凹んだとこで調べてみると。

clickableという設定があるみたい。

android:clickable="true"

そんでclickableだけだと

‘clickable’ attribute found, please also add ‘focusable’ less… (Ctrl+F1)
A widget that is declared to be clickable but not declared to be focusable is not accessible via the keyboard. Please add the focusable attribute as well. Issue id: KeyboardInaccessibleWidget

と言われる。キーボードで操作してる人が困るよってことなんだろうけど、これをキーボードで操作する人なんているかな…と思う。でもまぁ、せっかく言ってくれてるんで

android:focusable="true"

も入れてみた。これでタップできるようになった。

TextViewの縦横長を指定

最初電卓と同じようにリスナ作ってハンドラ書いてー、と、ひとマス分だけ書いてみた。

そんでタップすると「○」が表示された。でも列の幅が何故か変わってしまった。

おそらくTextViewのheight,widthをwrap_contentにしてたのが原因かなーと。

android:layout_width="10dp"
android:layout_height="10dp"

と、10dpにしてみたら幅も動かなくなった。

dpで大丈夫なのかな。そこらへんがいまいち分からない。

リスナを64個も書くのやだな

1個だけは書いてみたんだけど、これを64個も繰り返すの…?と思ったら嫌になってきたので、なにか方法はないかと探す。

xmlにonClickの値を設定するといいみたい。

android:onClick="PutStone"

とxmlに追加して、Reversi.javaに

public void PutStone(View view) {
    int id = view.getId();
    switch(id) {
        case R.id.textView00:
//略
TextView output = findViewById(id);
output.setText("○");

とやってみたらできた。

ちなみにswitchのcaseはむっちゃ長い。

探したけどよく分からないの…。

参考

【Android】いまさら聞けないdp入門 - Qiita
dpとは? Androidのデザインにおいて、必ず理解しておくべきポイントのひとつがdpについてです。 dp(density-independent pixels)とは密度非依存ピクセルのことで、dipとも呼ばれています。 An...
【Android】TextViewにonClickイベントを付与する - MogLog
Android4.2にて。 TextView属性にXMLファイルからonClick属性を付与したもののクリックイベントが発動しなかった。Buttonなどでは普通に動いていたので、TextViewに原因があるようだった。 // アクティビティ public void testToast(View view) { Toa...
Androidアプリのクリックリスナーのまとめ
Androidアプリで、ボタンや画像やテキストにタッチしたときの処理を書き込むクリックリスナーをセットする方法を、4通り解説します。

 

コメント

タイトルとURLをコピーしました