Type inference failed: Not enough information to infer parameter T in fun <T : View!> findViewById(p0: Int): T! Please specify it explicitly.
今日ひさしぶりにAndroid Studioを開いてみたらビルドエラーが発生
findViewByIdでエラーの模様
Type inference failed: Not enough information to infer parameter T in fun <T : View!> findViewById(p0: Int): T!
Please specify it explicitly.
kotlinで書いていたが以下のように書き直し
javaでも同様のエラーでるようになったのかな?
view.findViewById(R.id.item)
↓
view.findViewById<View>(R.id.item)
キャスト付き
root.findViewById(R.id.text) as TextView
↓
root.findViewById<TextView>(R.id.text)
GoogleAppEngineのapp.yaml設定でサブディレクトリにappを置く(python1日目の備忘録)
GAE/py webapp2
main.pyにすべて処理させるのではなく、サブディレクトリのアクセスはサブディレクトリに配置したpy(app)に処理させたい
まずつまづいたのはディレクトリを区切る時に/スラッシュではなくて.ドットで区切る
rootディレクトリ以下の処理
main.py
console以下のアクセス処理
console/main.py
console/sub/以下のアクセス処理
console/sub.py
というファイルがあった時
- url: /console/sub/.*
script: console.sub.app
login: admin
secure: always
- url: /console/.*
script: console.main.app
login: admin
secure: always
- url: .*
script: main.app
以上のようになる。がしかしこれだけでは動かず!
console/直下に__init__.pyという空のファイルを置く必要があるみたい
console/sub.py
app = webapp2.WSGIApplication([
('/console/sub/list', List),
('/console/sub/item/add', ItemAdd)
], debug=True)
のようにしてルーティングする
以下のようになる
main.py
console/__init__.py
console/main.py
console/sub.py
- url:
/console/sub/.*
script: console.sub.app
login: admin
secure: always
- url: /console/.*
script: console.main.app
login: admin
secure: always
- url: .*
script:
main.app
俺なら年賀状の市場規模を10倍にできる
年賀状衰退の意味ってわかってるのかな?
昔は近況を知らせるためのツールとしての需要があった。
今となっては紙の無駄だし、もらったら返さないといけない強迫観念、SNSとくらべて手間がかかりすぎる。
SNS以上の価値を提供すれば良いのになぜしないのだろう。
私が郵便局長なら、紙媒体をのこしつつ以下の施策を打つ。
年賀はがきのソーシャル化。
すべての年賀状をウェブ上で閲覧できるようにする。
永遠年賀はがきを保存可能
公開範囲を設定できる。
年始にログイン用アカウント発行用紙を送付
ウェブ上でコメント、および紙媒体の年賀状の返信ができる
翌年からはそのサイト上で年賀状を発行
これなら、スマホでも見れるし、簡単に返信もできる。
そして、その後につなげることができる。
その後とは、ほぼすべての日本人が参加する巨大SNSが一夜にして誕生する。
email,line,messengerでは不可能だった、書留のような重要な書類をやり取りできるプラットフォームを載せる
郵便という文化が進化する
MySQLで緯度経度を使う際の備忘録
MySQLで位置情報を扱う
緯度 = latitude = Y
経度 = longitude = X
//table
CREATE TABLE IF NOT EXISTS `geo_table` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
`geometry` geometry NOT NULL COMMENT 'ジオメトリ',
PRIMARY KEY (`id`),
SPATIAL KEY `geometry` (`geometry`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
//insert
INSERT INTO `geo_table` (`geometry`) VALUES (PointFromText('POINT( longitude latitude)');
INSERT INTO `geo_table` (`geometry`) VALUES (PointFromText('POINT( x y)');
INSERT INTO `geo_table` (`geometry`) VALUES (PointFromText('POINT( 経度 緯度)');
//範囲内検索
SELECT X(geometry) AS longitude , Y(geometry) AS latitude FROM geo_table WHERE MBRWithin( geometry , GeomFromText('LineString(longitudeA latitudeA , longitudeB latitudeB)');
緯度経度とYXの関係を間違えないように注意する
DrawerLayoutでBackkeyで閉じる処理(失敗例も)
DrawerLayoutでバックボタンで閉じる処理は素直にonBackPressedをOverrideしましょう
正解
@Override
public void onBackPressed() {
if (this.mDrawerLayout.isDrawerOpen(GravityCompat.START)) {
this.mDrawerLayout.closeDrawer(GravityCompat.START);
} else {
super.onBackPressed();
}
}
失敗
StackOverFlowにて以下のような書き方を見かけましたが真似しちゃダメです
mDrawerLayout.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS);
こうすると確かにNavigationViewは閉じるのですが、子ビューにどうやってもフォーカスが当たらなくなり、以下の様なエラーが吐き出されます
W/TextView: TextView does not support text selection. Action mode cancelled.
Android StudioでUnsupported major.minor version 52.0 エラーの解決方法
Android Studioのレイアウトプレビュー画面での以下のエラーを解決する方法
Rendering Problems
Failed to load the LayoutLib: com/android/layoutlib/bridge/Bridge : Unsupported
major.minor version 52.0 (Detailes)
Java8に変更するかAndroidのレンダリングバージョンをN以下に戻します
このことからAndroid N はJava8へ対応するものと思われます