2010年08月29日

自作アプリを android 実機に転送する方法

自分で作ったアプリを android の実機に送る方法をいつも忘れてしまうので、備忘録として。

まず、android 実機を PC に接続。
コマンドプロンプトを立ち上げて、プロジェクトの bin ディレクトリに移動。
C:\Documents and Settings\foo> cd "My Documents"/eclipse
C:\Documents and Settings\foo\My Documents\eclipse> cd Project/bin
adb コマンドを使って転送します。
C:\省略> adb -d install -r Hoge.apk
以上で完了です。
タグ:android
posted by おちエン at 12:19| Comment(0) | Android | このブログの読者になる | 更新情報をチェックする

2010年08月26日

シンプルなlayoutでListViewを表示する場合

今までの例では、col.xml は非常にシンプルで、TextView を1つだけ持つようにしていました。
今回は以下のように、表示させてみます。

listview2.gif

col.xml を以下のようにします。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent" 
              android:layout_height="fill_parent" 
              xmlns:android="http://schemas.android.com/apk/res/android" 
              android:orientation="horizontal">
   <TextView android:text="◆" 
             android:layout_width="wrap_content" 
             android:layout_height="wrap_content"></TextView>
   <TextView android:id="@+id/text" 
             android:layout_width="wrap_content" 
             android:layout_height="wrap_content"></TextView>
</LinearLayout>
TestActivity を書き換えずに実行すると、エラーで止まってしまいます。
adapter = new ArrayAdapter<String>(this, R.layout.col);
という箇所を
adapter = new ArrayAdapter<String>(this, R.layout.col, R.id.text);
にすれば OK です。
行のレイアウトが複雑になっても、動的に変更する部分が一箇所だけであれば、この方法でできます。

TestActivity の全コードはこちらから
posted by おちエン at 23:20| Comment(0) | Android | このブログの読者になる | 更新情報をチェックする

2010年08月16日

ListView への項目追加

どこかで以下のようなコードを見かけました。
public class TestActivity extends ListActivity {
    private ArrayList items;
    ArrayAdapter adapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        items = new ArrayList();
        items.add("東京都");
        items.add("神奈川県");
        items.add("千葉県");
        items.add("埼玉県");

        adapter = new ArrayAdapter(this, R.layout.row, items);
        setListAdapter(adapter);
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
      menu.add("追加");
      return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
    	items.add("福岡県");
    	adapter.notifyDataSetChanged();
    	return true;
    }
}
  1. 表示させる項目の容れ物として、ArrayList を作成
  2. ArrayList に項目追加
  3. ArrayList を初期データとして、ArrayAdapter を生成
  4. setListAdapter() で ArrayAdapter を登録
という流れです。
このような実装をしてしまった場合、項目を追加するたびに、
    	items.add("福岡県");
    	adapter.notifyDataSetChanged();
という風に ArrayAdapter::notifyDataSetChanged() を呼ぶ羽目になります。
これは面倒なので、最初から ArrayAdapter にデータを登録するのが better だと思います。
タグ:ListView android
posted by おちエン at 21:56| Comment(0) | Android | このブログの読者になる | 更新情報をチェックする

2010年08月04日

ListView 選択時に画面いっぱいに広げる方法

ListView で項目を選択した時、文字列の長さ分だけしか背景色が変わらないというような現象が。。。

listview1.gif

な感じです。
対応方法は、
  • ListView の layout_width を fill_parent に変更
  • 行の親要素の layout_width を fill_parent に変更
します。

まず、ListView ですが、前回と同じコードの場合は、layout/main.xml を
<ListView android:id="@id/android:list" 
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content"></ListView>
と太字の部分のように変更します。
次に layout/col.xml を
<TextView android:text="@+id/TextView01" 
  android:id="@+id/TextView01" 
  android:layout_width="fill_parent" 
  android:layout_height="wrap_content" 
  xmlns:android="http://schemas.android.com/apk/res/android" 
  android:textSize="40px"></TextView>
とします。こうすれば、

listview2.gif

な感じで表示されるようになります。
タグ:android ListView
posted by おちエン at 02:02| Comment(0) | Android | このブログの読者になる | 更新情報をチェックする

AndroidのListActivity

Android 開発を始めました。

ListView を使ってみようと思って調べてみると、大体 ListActivity を使って、、、という話が多いのですが、素朴な疑問として、そもそも ListActivity ってそんなメリットがあるの?というのが今回の話。

普通の Activity で ListView を使うようにコードを書くと以下のような感じ。
まず、おおもとのレイアウトとして、layout/main.xml を作成。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

<ListView android:id="@+id/list" android:layout_width="wrap_content" 
  android:layout_height="wrap_content"></ListView>
</LinearLayout>
list の1行1行になる layout/col.xml を作成。
<?xml version="1.0" encoding="utf-8"?>
<TextView android:text="@+id/TextView01" android:id="@+id/TextView01" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  xmlns:android="http://schemas.android.com/apk/res/android"></TextView>
Activity は TestActivity クラスと名付けて以下のようにします。
public class TestActivity extends Activity {
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
	    super.onCreate(savedInstanceState);
	    setContentView(R.layout.main);
	    
	    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.col);
	    adapter.add("東京都");
	    adapter.add("神奈川県");
	    adapter.add("千葉県");

	    ListView listView = (ListView)this.findViewById(R.id.list);
	    listView.setAdapter(adapter);
    }
}
これで実行すると、問題なく表示されます。 ListActivityを使った例はこちらから
posted by おちエン at 01:26| Comment(3) | Android | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。