第9回 つ部 ミーティング

2011年3月26日に行われた「第9回 つ部 ミーティング with Corona SDK 2011.3.26」に参加しました.

http://atnd.org/events/13596

Corona面白そうでしたが,自分がiPhoneアプリの開発を行っていないので,挑戦するかは未定です.
ただ,ライブラリが不足しているそうなので支援はしたいと思います.
そのために,まずはluaを覚えることを始めないといけないんですけど.

Coronaのために,iPhone5が発売されたら,買ってしまうのもいいかもしれないです.
それでも,僕が好きなのはAndroidですけど.

今回のつ部で,初めてライトニングトークと,Androidマーケットへのアプリ公開を行なうことができました.

ライトニングトーク時に使用したPDF 20110326tsubu

発表のタイトルはLyricalSourceCodeViewerですが,今回発表,公開したアプリはGitHubViewerです.

Androidマーケット https://market.android.com/details?id=net.flaxia.android.githubviewer

GitHub https://github.com/fgluser/GitHubViewerAndroid

勉強会 , Leave a comment

EditTextのsetSelection()が失敗するときの対処法

EditTextの「setText();」を実行してすぐに,「setSelection(0);」を実行すると,カーソルの位置が先頭にこないようです.
EditTextの表示が完了していないうちに行うと起こるようです.
「setText();」で文字列を入れたあとに,Buttonのイベントで「setSelection(0);」を実行した際にはカーソルが先頭に来ました.
xmlで「Android:text=”"」で指定した場合にも起きると思います.
「setSelection(1);」のように先頭以外を指定した場合には問題なく動作しました.

この問題の対処法を見つけたので紹介します.
mEditTextはEditTextのインスタンスです.

mEditText.setSelection(mEditText.getText().toString().length());
mEditText.setSelection(0);

先に,「mEditText.setSelection(mEditText.getText().toString().length());」を実行し,カーソルを一旦移動させます.
mEditTextに文字列が入っていない場合,カーソルは最初から先頭にいるので問題ありません.
次に「mEditText.setSelection(0);」を実行することで,カーソルを先頭に持ってきます.
以上で完了です.

プログラミング Leave a comment

ContextからstartActivity(intent)の実行

Activityのインスタンスをactivity,Contextのインスタンスをcontextとします.

Intent intent = new Intent();
intent.setClass(context, DashbordActivity.class);
activity.starActivity(intent);

これは成功します.

次にactivityではなく,contextで同じように書きます

Intent intent = new Intent();
intent.setClass(context, DashbordActivity.class);
context.startActivity(intent);

これは失敗します.
こんなエラーです.
android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

エラーに従ってフラグ立てます.

Intent intent = new Intent();
intent.setClass(context, DashbordActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);

これでactivityと同じように動作しました.

プログラミング Leave a comment

ListViewがクリックに反応しない場合の対処法

AndroidのListViewがクリックされたときの処理はこんな感じに書きます.

listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// クリックされたときに実行する処理
}
});

しかし,ListViewの内容によっては,クリックに反応してくれない場合があります.
僕の場合は,ListViewにはめ込んでいるwidgetがクリックに反応したため,ListViewまでクリックが伝わっていませんでした.
widgetに自分でクリック時の処理を書いていなくてもこれが発生するようです.
この場合,ListView上のwidgetがクリックに反応しないようにすることで解決できました.

<TextView android:layout_width="fill_parent"
    android:layout_height="0dip" android:layout_weight="1"
    android:id="@+id/text"
    android:focusableInTouchMode="false" android:focusable="false" />

「android:focusableInTouchMode=”false”」でクリックに反応しなくなります.
「android:focusable=”false”」は十字キーやトラックボールでフォーカスが当たらなくなるはずです.すみません,Xperiaを使ったので試せていません.

プログラミング Leave a comment

今年の目標

今年は

  • viでのカーソル移動を自然にhjklで行えるほどviを使う
  • Androidマーケットにアプリを出す
  • Python,もしくはRubyをJavaやPHPと同じぐらい扱えるようにする

これを目標にしようと思います.

未分類 Leave a comment

Hello world!

今日からまたブログ書こうと思います.

未分類 Leave a comment