Android開発 Fragmentを使ったタブメニュー

Androidでアプリを使う場合、たいていタブが欲しくなります。

 

Googleで検索すると古いTabHostを使ったコード例がたくさん出てきます。

 

ところがタブのコードがAndroid3.0以降で新しくなっているんですね。

 

そのまま真似するとdeprecatedのワーニングがたくさん出ます。

 

役にたったサイトが

 

[Android] Fragment をタブで切り替える FragmentTabHost を使う - rakuishi.com

 

ここのコードで簡単にできましたよ。

 

ワーニング、エラーなしの一発OKです。素晴らしいです。

Android開発 ActionBarActivityを使わないアプリ作成方法

Androidで新しいプロジェクトをBlank Activityで作成すると、

ActionBarActivity を継承したクラスが作成されます。

 

ActionBarActivityとはアプリの一番上に位置するメニューバーのようなものです。

ここにボタンやオプションメニューを追加してカスタマイズできますよ、

ということなのですが余計です。はっきり言って要りません。

 

ActionBarActivityを利用しない方法を解説します。

非常に簡単です。

 

public class MainActivity extends ActionBarActivity {

 

ActionBarActivityを消して、この箇所を下のようにActivityに変更します。

 

public class MainActivity extends Activity {

 

これとインポートが変更になります。ActionBarActivity系のインポートが要りません。

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;

 

変わりにActivityをインポートします。

import android.app.Activity;

 

これだけで本当に空っぽのブランクアプリが作れます。

Androidってサービスで一気に難しくなるな。

Androidのプログラミングって初めはそれ程難しくないと思います。

 

アクティビティやウィジェットやらインテントもすんなりと行ける。

 実際にスマホで動くと面白い。コードも少なくてすむ。

 

GUIの変更はシングルスレッドしかできない、

そのときはハンドラーを使ってGUIの変更をする。

ここらへんまではなんとかイケルと思う。

 

ところがサービスになると一気に難しくなります。

難しくなるポイントはやはり連携、データの受け渡しでしょうか。

 

非同期でAsync、サービスからはブロードキャスト、

しかもエラーが出てくる。

 

こうなるともういけない。挫折するポイントだと思います。

案外xmlGUI設定、この時点で面倒くさくなりますね。

 

 

Android開発 Found 2 versions of android-support-v4.jar in the dependency list,

プロジェクトのビルド時に

Found 2 versions of android-support-v4.jar in the dependency list,

というエラーが出てきました。

 

android-support-v4.jarが複数あり競合しているとでてきます。

どちらかのandroid-support-v4.jarを上書きコピーしてやると

出てこなくなります。

 

 

Android開発 Deprecated ワーニング

Androidでプログラミングしているときに

ワーニングでDerecatedとワーニングがでてくることがあります。

 

非推奨という意味です。

一応動くけれどもコードが古いのでおすすめしませんよ、ということです。

 

新しい関数はコードに変換すると出てこなくなります。

 

 

Android開発 BOOKMARKS_URIでブックマークだけを取り出す方法

ブラウザのブックマークを取り出すにはBOOKMARKS_URIを使って

getContentResolver().queryします。

 

ところがBOOKMARKS_URIを使うと履歴とブックマークの両方が取り出されてしまいます。

Historyの履歴を除外するには

 

getContentResolver().query(
Browser.BOOKMARKS_URI,
projection, android.provider.Browser.BookmarkColumns.BOOKMARK, null, null);

 

projectionの後ろでandroid.provider.Browser.BookmarkColumns.BOOKMARKを指定してやるとブックマークだけを取得することができるようになります。