Androidの最近のブログ記事

ListViewをカスタムしてCheckBoxを追加したときにListViewがonListItemClickを
受け付けなくなる事象があったのでメモ

どうやらListViewにCheckBoxを追加した場合は追加したCheckBoxに設定を追加
する必要があるらしい。

CheckBoxに「android:focusable="false"」を設定しないとダメ

知らなかった。

参考サイト


以前も書きましたが、また同様のエラーが発生しました。
「Conversion to Dalvik format failed with error 1」

以前と同様の手順でも直らない。。。

どうやら、Proguardのバージョンをアップすると直るらしい。
今はいっているProguardのバージョンが4.4で4.6にすると直るみたい。

以下より4.6がダウンロードできます。

で、これを解凍します。
解凍したらbinの配下をすべて下記にコピーします。
androidをインストールした先/tools/proguard/bin/

次に解凍したlibの配下を全て下記にコピーします。
androidをインストールした先/tools/proguard/lib/

これでOK。
事解決しました。

以前、AndroidのFooterViewについて書きましたが、ずっとその続きを書いてなかったのでかきます。

ポイントとしてはsetListAdapter(adapter)を行う前にフッターを追加する必要があるってことです。
フッターの追加の仕方は下記のとおりとなります。

以下、SampleFooterView.javaより抜粋
// フッターを追加
ListView listv = getListView();
TextView footer = new TextView(this);
footer.setTextSize(40);
footer.setTextColor(Color.argb(255, 200, 200, 0));
footer.setText("フッター");
listv.addFooterView(footer);


また、フッターアイテムが押下された等の処理はonListItemClickに記述します。
今回のサンプルではトーストを表示するようにしてます。

以下、SampleFooterView.javaより抜粋
int size = list.getCount();
// 最終行なのでフッターと判断
if ((size - 1) == position) {
    Toast.makeText(this, "フッターをタッチしましたね。", Toast.LENGTH_SHORT).show();
// 最初の行なのでヘッダーと判断
} else  if (0 == position) {
    Toast.makeText(this, "ヘッダーをタッチしましたね。", Toast.LENGTH_SHORT).show();
// 上記以外はアイテムと判断
} else {
    TextView tv = (TextView)view;
    Toast.makeText(this, tv.getText() + "をタッチしました。", Toast.LENGTH_SHORT).show();
}
device-2011-12-14-150350.png

今回のサンプルアプリです。

以前記事
AndroidでProguardがデフォルトで使用可能となったので実際に試してみました。

まず、下の2ファイルができていること。
・default.properties
・proguard.cfg

ウィンドウ → 設定 → Android → ビルド → ビルド出力を詳細としておく。

default.propertiesを開いてもらいproguard.cfgのパスを追加します。
・proguard.config=proguard.cfg を追加
※相対パスか絶対パスで書く

apkを作成する。
XXXXプロジェクト  → 右クリック → Androidツール → Export Signed Application Package

これでapkを作成可能です。


しかし、ここでエラーがでてしまいました。
「Conversion to Dalvik format failed with error 1」

ググってみたところ、クリーンを行えば直るよって書いてあったので試しました。
結果NGで、またしても同じエラーが、、、
色々試してみたところ単純にapkファイルが既に存在しているためでした。

単純なことに15分くらいはまってました。。

だいぶ前ですが、一回はまったことがあるのでメモとして
残しておきます。

R.layout.main が解決できない事象が発生

原因は
android.R; がimportされていたため自分のパッケージ内の
リソースにアクセスできなくなっていました。

解決方法は
android.R; のimportを消す

以上

AndroidでActivityが表示されている限りスリープモードに移行 しない方法は
下記のコードを記載する

onCreateメソッド
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

AndroidでResourcesを別XMLで定義したいことがあったのでちょっと調べた
のでメモしときます。

XMLは下記のとおり記述すればOK。
ファイル名はres/values/dimens.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="font_size">12sp</dimen>
</resources>

実際にソースでXMLから取り出すときは下記のようにする。
int size = getResources().getDimensionPixelSize(R.dimen.font_size);

AlphaTouchをリリースしました。

変更履歴(1.0.0)

・新規リリース
・ベースはNumberTouchの1.4.2をベースとしております。

マニュアルはこちら

以上。
NumberTouchで記録を更新した際に「twitterでつぶやく」みたいな機能を実装
しようかと模索しておりました。

twitterのクライアントはいっぱい存在しているので自分で
実装する必要はあまりないかなぁということで今回はアプリ
連携で対応することにしようかと思ってます。

でまずしらべたことをメモっておきます。
まず日本で一番使われてる?だろうtwiccaと連携してみることにしました。
自分のAndroidは1.6なので公式のtwitterアプリが入れられないので。。。

----- ここからがテスト用のコード ----
public class ZampleActivity extends Activity implements OnClickListener{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btn = (Button)findViewById(R.id.Button01);

        btn.setOnClickListener(this);
    }

    public void onClick(View v) {
        int id = v.getId();

        if(id == R.id.Button01){
        
            // ACTION_SENDに対応しているアプリを対象
            Intent intent = new Intent(Intent.ACTION_SEND);
            
            // twiccaのパッケージを設定
            intent.setPackage("jp.r246.twicca");
            
            // typeを text/plain に設定
            intent.setType("text/plain");
            
            // つぶやきを設定
            intent.putExtra(Intent.EXTRA_TEXT,"テスト");

            try{
                // twiccaのアクティビティを開始
                startActivity(intent);
            }
            catch(ActivityNotFoundException ae){
            
                // twiccaが入っていない場合
                Toast.makeText(this, "twiccaがインストールされていません。", Toast.LENGTH_LONG).show();
                ae.printStackTrace();
            }
        }
    }
}

いちおうこれでtwiccaの呼び出しができるようになりました。
あとはつぶやきたくない人用に設定を追加する必要があるかな。

AndroidのListViewにFooterViewってのがあるらしいです。

 

使いかたは現在調べ中です。

 

何かわかったらここに書こうとおもってます。


つづき

http://blog.dmnet.tv/shinn-blog/2011/12/footerview2.html

このアーカイブについて

このページには、過去に書かれたブログ記事のうちAndroidカテゴリに属しているものが含まれています。

前のカテゴリはAlphaTouchです。

次のカテゴリはantです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.27-ja