CardViewにクリックエフェクトを付ける
このの2行でクリックエフェクトがつくようになる。
android:foreground="?android:attr/selectableItemBackground"
android:clickable="true"
つまり、こんな感じだな
<android.support.v7.widget.CardView android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" android:foreground="?android:attr/selectableItemBackground" android:longClickable="true" app:cardCornerRadius="8dp" app:cardElevation="2dp" >
参考
ローカルガイドの投稿写真の表示回数が20万を超えた
またまたローカルガイドからメールがきた
20万表示を突破したらしい。
やったー
最近、Googleマップに写真投稿するのが楽しくなって、投稿ペースが前より増えたかも。
ポイントも400ジャストくらいかな。
レベル5まであと100!
まだまだ頑張るぞー
Googleマップローカルガイドからお祝いのメールがきた
突然こんなメールがきた。
Googleマップに俺の投稿した写真がこれだけ見られました! という内容のメールだった。
15万という数字は、おそらくローカルガイドを始めてからのトータル件数だろう。
せっせと写真を投稿したかいがあったようだ。 次は何万件でメールがくるんだろう?
ちなみに、今のローカルガイドの点数は350だった。
レベル5になるには500点とればいいのかな? まだ先は長いなー
500点まで頑張ろう
lsコマンドでディレクトリのみを一覧で表示
こんな状態から
Directory1 Directory2 Directory3 Directory4 Directory5 sample1.apk sample2.apk sample3.apk
ディレクトリのみ一覧で表示したい場合
ターミナルに以下をぶちこむ
ls -1F | grep /
表示結果
Directory1/ Directory2/ Directory3/ Directory4/ Directory5/
lsオプション説明
-1
1行に1ファイルずつ表示する
-F
ファイル名にファイル・タイプを表す記号を付けて表示する。ディレクトリは"/",実行可能ファイルは"*",シンボリック・リンクは"@",FIFOは"|",ソケットは"="で表わす
最後のスラッシュが邪魔だけど...
もっと良い方法ないですかね
Xmllintで属性を指定してXmlから値を取得
またまたシェルスクリプトとxmllintを使う機会があった。
今度はxmlに同名タグが複数存在しており、属性で絞って値を取るというパターンだった。
やりたいこと
以下のxmlがあったとする。
<!-- sample.xml --> <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <map> <long name="aaa" value="12345" >いぬ</long> <long name="bbb" value="56789" >ねこ</long> </map>
longタグ内にあるname="aaa"のvalueの値「12345」を取得したい。
前回と同じくxmllintを使って取得する。
準備&おさらい
準備&おさらいとして、単にvalueのみを指定してxmllintで取る。
echo 'cat map/long/@value' | xmllint --shell sample.xml
結果はこうなる
/ > cat map/long/@value ------- value="12345" ------- value="56789"
name="aaa"もname="bbb"の両方のvalueがヒットしてしまう。
これを条件を与えて絞るようにする。
xmllintに条件を加える
name=aaaのみを得るには、long[@name="aaa"]
とする。
echo 'cat map/long[@name="aaa"]/@value' | xmllint --shell sample.xml
とすると、結果はこうなる。
/ > cat map/long[@name="aaa"]/@value ------- value="12345"
無事にname=aaaのみのvalueが取れた。
できた
あとは変数だけを取得するなら、自分はこうしてみた
value=`echo 'cat map/long[@name="aaa"]/@value' | xmllint --shell sample.xml |grep value= | sed 's/[^"]*"\([^"]*\)"[^"]*/\1/g'` echo $value
結果はこうなる。
1234
これで目標達成となった。
<br
おまけ
「いぬ」の値を取る場合はこうした。
value=`echo 'cat map/long[@name="aaa"]' | xmllint --shell sample.xml | grep value= | sed 's/^.*<long.*>\(.*\)<\/long>.*$/\1/'`; echo $value
結果はこうなる。
いぬ
参考リンク
- Test XML command line with xmllint | - Softwaretester -
ShellScriptとxmllintでxmlを解析
ShellScriptド素人がxmlの中身を取り出したかったので、色々調べた
xmllintとは
xmllintとはlibxml2を使用したツールで、XMLファイルに対して以下の機能を持ったのコマンドラインツールです。
このxmllintを使って、以下のxmlを解析して値&属性値を取り出す
sample.xml <?xml version='1.0' encoding='utf-8' standalone='yes' ?> <top> <int name="hoge" value="327">100</int> </top>
327を取り出す場合、以下のようにする
echo 'cat /top/int/@value' | xmllint --shell sample.xml | grep value= | sed 's/[^"]*"\([^"]*\)"[^"]*/\1/g'
100を取り出す場合、以下のようにする
echo 'cat /top/int' | xmllint --shell sample.xml | grep value= | sed 's/^.*<int.*>\(.*\)<\/int>.*$/\1/'
参考にしたサイト
* ShellScriptでXMLの内容を取り出す | Opentone Labs.
* sedで「ダブルクォーテーションに囲まれた文字列」を抽出する方… - 人力検索はてな