[Android] ActivityNotFoundException

| トラックバック(1) |

startActivity()でアクティビティを開始したが、

Suspended exception ActivityNotFoundException

と表示される場合、

AndroidManifest.xmlのApplication Nodesに、

目的のActivityが追加されていない可能性があります。 

対処するには、

  1. Eclipseの[PackageExplorer]から、[AndroidManifest.xml]をダブルクリック
  2. [AndroidManifest.xml]の編集画面下の[Application]タブをクリック
  3. [Add]ボタンをクリック
  4. [Create a new element at the top level, in Application.]で、[Activity]など追加したい要素が選択された状態で、[OK]ボタンをクリック
  5. (画面右下1/4の領域に表示される)Name*の右にある[Browse]ボタンをクリック
  6. [Select class name for element Application]下のリストから目的のクラスをクリック

AndroidManifest.xmlファイルを直接編集する場合、

<application></application>の間に

<activity android:name="クラス名"></activity>

を挿入すればOKです。

[Android] SimpleDateFormat

| トラックバック(0) |

日時文字列からDateクラスのインスタンスを得るには、DateUtils.parseDate()を使用する方法以外にも、SimpleDateFormat.parse()を使用しても同様のことができます(こちらの方がお勧めかも)。

また、Dateクラスのインスタンスから任意の日時文字列に変換するには、SimpleDateFormat.format()を使用します。

下記に相互変換したサンプルコードを記載しておきます。

String inDate = "Sat, 10 Jan 2009 00:00:00 +0900";
String outDate = null;
SimpleDateFormat inFormat = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");
SimpleDateFormat outFormat = new SimpleDateFormat("yyyy/MM/dd");
Date date = null;
try {
    date = inFormat.parse(inDate);
} catch (ParseException e) {
}
outDate = outFormat.format(date); // 結果は、"2009/01/10"

[Android] Java言語の配列の書き方

| トラックバック(0) |

Java言語の配列の書き方は、以下のとおり。

int[] a = {0, 1, 2};
int[] b = new int[] {0, 1, 2};
int[] c = new int[3];
c[0] = 0;
c[1] = 1;
c[2] = 2;

※色々な言語を行き来していると忘れてしまいます。。。現在、C++、AS3、Javaを並行して作業しているので・・・という言い訳。。。

[Android] DateUtils.parseDate

| トラックバック(0) |

日時文字列からDateクラスのインスタンスを得るには、DateUtils.parseDate()を使用します。

ソースコードサンプルは、以下のとおりです。

String dateString = "Sat, 10 Jan 2009 00:00:00 +0900";
String pattern[] = {DateUtils.PATTERN_RFC1123};
Date date = null;
try {
    date = DateUtils.parseDate(dateString, pattern);
} catch (DateParseException e) {
}

DateUtilsには、下記の文字列定数がありますので、 変換元のフォーマットが一致する場合には、定数を指定するだけで利用できますが、そうでない場合にも、HHやmmなどで、独自のフォーマット文字列を書けば利用できます。

  • PATTERN_ASCTIME = "EEE MMM d HH:mm:ss yyyy"
  • PATTERN_RFC1036 = "EEEE, dd-MMM-yy HH:mm:ss zzz"
  • PATTERN_RFC1123 = "EEE, dd MMM yyyy HH:mm:ss zzz"

※EEEは、曜日。zzzは、タイムゾーン。

Androidでサポートしている画像フォーマットは、以下のとおり。

  • Bitmap(BMP)
  • JPEG(JPG)
  • PNG
  • GIF

静的にリソースに組み込む場合には、res/drawableに画像を配置して、ImageView.srcにセットすれば表示できる。

※Googleさんの公式ドキュメントは、こちら。
 ここでは、PNGが推奨(preferred)で、それ以外は、非推奨(discouraged)と記載されている。

また、URL(http://~)から動的に読み込む場合には、(BufferedInputStream,ByteArrayOutputStream,BufferedOutputStreamなどで)読み込んだbyte配列をBitmapFactory.decodeByteArray()にセットすることでBitmapが得られるので、ImageView.setImageBitmap()にセットすれば表示できる。

※Googleさんの公式ドキュメントでいうと、android.graphicsパッケージ内のBitmap、BitmapFactoryのあたり。

ちなみに駄目元でTIFF(TIF)を試してみたら、やっぱり駄目でした。

<<前のページへ 7576777879808182838485

2012年6月

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30