忍者ブログ

メモ帳

卒業制作中におきた困ったことと解決策まで載せられたらいいな   解決時参照したページのメモ帳  (就職先探し中)

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

アンドロイドにスワイプが無いはずがない

いろいろ考えながら作っていたつもりでしたが、
スマホならではの操作というものがありまして
フリックやスワイプなどはガラケーユーザには微塵も思いつかなかったわけです

ということで、
ボタンを押しての切り替えじゃ無くてスワイプを使えるようにしよう!

レイアウト系から関わってくるので
ただいまxmlから作り直し中。

xmlで<ViewPager> を外枠に使うのですが
標準ライブラリではないのでいちいち指定が必要です。
Ctrl+Space押しても候補にでない……
実際の指定はこんなかんじ
 <android.support.v4.view.ViewPager

これをLinearLayoutみたいにして使うご様子。


試行錯誤中だが、下の参考サイトはすごく優しいのでおすすめ



参考サイト

PR

ボタンを配列に入れる

似た様な作業をするんだから、いちいちifで分岐させたり、地の文で書くんじゃなくて
配列に入れてやってforでどばーっと書きたい。

そんなときに詰まった落とし穴。

	Button mb1,mb2,mb3,mb4,mb5,mb6;
		mb1 = (Button)findViewById(R.id.m_1);
		mb2 = (Button)findViewById(R.id.m_2);
		mb3 = (Button)findViewById(R.id.m_3);
		mb4 = (Button)findViewById(R.id.m_4);
		mb5 = (Button)findViewById(R.id.m_5);
		mb6 = (Button)findViewById(R.id.m_6);
これを
	Button[] mb;
		mb[0] = (Button)findViewById(R.id.m_1);
		mb[1] = (Button)findViewById(R.id.m_2);
		mb[2] = (Button)findViewById(R.id.m_3);
		mb[3] = (Button)findViewById(R.id.m_4);
		mb[4] = (Button)findViewById(R.id.m_5);
		mb[5] = (Button)findViewById(R.id.m_6);
に書き換えたかったのだが、このままでは null がでて怒られる。

答えは簡単
一行足りなかったのだ。
	Button[] mb;
		mb = new Button[6];
		mb[0] = (Button)findViewById(R.id.m_1);
		mb[1] = (Button)findViewById(R.id.m_2);
		mb[2] = (Button)findViewById(R.id.m_3);
		mb[3] = (Button)findViewById(R.id.m_4);
		mb[4] = (Button)findViewById(R.id.m_5);
		mb[5] = (Button)findViewById(R.id.m_6);
簡単なのだが気付くのに酷く時間がかかった。凹む。

他に配列に入れたいものといえば、SharedPreferenceの返答なのだが、
どうやらいけるらしい。
Keyをxmlファイルのstring-arrayに入れておくと便利。


参考サイト

Android コントロール(ウィジェット)配列『youinfo』
[参照日:2013/11/16]

TextViewに書かれたURLをブラウザで開く

自動アップデートとか面倒なのでより簡単かなと考えまして、
サポートページとか作ってやろうと思いました。

アプリ内ではバージョン情報とかと一緒にサポートページへ
リンク貼っておくことにしました。

layout の xmlファイル
特定のTextViewの属性をいじります。

android:text
URLを入力(string.xmlのなかにURL入れて、呼び出してもOK)して
android:autoLink
にお望みの属性を追加!

今回はブラウザを開いてWebページを見たいので
android:autoLink="web"
と入力すれば後はAndroidがやってくれます。



メールとか電話番号だった場合は別の属性を使えば良いみたい。
あと、住所にはmapを利用できるそうな。

参考サイト

TextViewにWebサイトへのリンクを作成する」『TechBooster』
[参照日:2013/11/13]

getSharedPreference の心配

わりとしょっちゅうやらかすので覚え書き。

SharedPreferences を使うときは、読み出す手順は簡単だけど保存の時に一つ手間がいる。

globals.wName[globals.MONSTER_CODE] には String が入っております

pref = getSharedPreferences("MonsterEgg",Activity.MODE_PRIVATE);
spEditor = pref.edit();

ここまで事前定義。

spEditor.putBoolean(globals.wName[globals.MONSTER_CODE], true);
Boolean ko = pref.getBoolean(globals.wName[globals.MONSTER_CODE],false); Log.v(tag,String.valueOf(ko));

って書いているとBoolean koの中に ture って入っていて欲しいのに
どうしてLogCatは false って言うの?

falseは初期値に入っている。つまり、保存できていない??

悩むこと数日……

保存するときは
spEditor.commit();
を後につけないとSharedPreferencesの中には保存されてくれないのでした。

デバッグ用にgetするときとかよく忘れてcomimtする前に読み込んだりしてます……

完成版
spEditor.putBoolean(globals.wName[globals.MONSTER_CODE], true);
spEditor.commit();
Boolean ko = pref.getBoolean(globals.wName[globals.MONSTER_CODE],false); Log.v(tag,String.valueOf(ko));


これならちゃんと true が返ってきます 保存したとおり!

LogCatが不意に動かなくなる

eclipse を使って実機の様子をうかがう為にLogCatを使う訳なんですが、
ふとしたときにLogCatが動かなくなるんです。

解決策が見つかったので覚え書き

[パースペクティブを開く]から[DDMS] を選択
左の方に[Devices]タブが現れると思うので対象の実機を選択した状態で
下画像の丸印で囲んだボタンをPush!


赤丸が付いているときはLogCatが止まっている証拠。
逆に赤丸ではなく灰色丸の時はここが原因ではないみたい……

接続をチェックし直すべきか……

ちなみに、丸印の右「フラッシュの光るカメラマーク」を押すと実機のスクショがとれた。
古いAndroidはスクショ機能が付いてないので意外と便利かも

せっかくなので貼ってみる

早く完成させなくちゃ


参考サイト:
Kazzzの日記 [参照日:2013/11/06]


ブログ書くのにctrl+Sをしょっちゅう押してめんどくさいことになってる

プロフィール

HN:
漣 時雨
性別:
非公開

P R