ウェブアプリケーション,インジェクション,コマンドインジェクション

Androidアプリ開発 画像とアイテムのリストを表示していく

ListViewを改良していく

Customizing the ListView

初期設定では、ListViewは1つのアイテムを選ぶことができます。
複数の様々なアイテムを選べるようにするために、
それぞれのアイテムの次に、チェックボックスを表示するための
ListViewを設定できます。
ListViewを設定するために、まずListViewの参照を得る必要があります。
もしこれから使うアクティビティがListActivity基底クラスを
拡張しているのなら、使うアクティビティにあるListViewの
インスタンスを返すためのgetListView()メソッドを
使うことができます。
一度、ListViewのインスタンスを取得すると、
setChoiceMode()メソッドを呼び出し、
ListViewのディスプレイモードをセットします。

@Override
public void onCreate(Vundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  ListView 1stView = getListView();
  //1stView.setChoiceMode(ListView.CHOICE_MODE_NONE);
  //1stView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
  1stView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

  setListAdapter(new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_checked,os));
}

このListView.CHOICE_MODE_MULTIPLEは、
ListViewのそれぞれのアイテムの次のチェックボックスを
随時表示します。
ユーザがそれぞれのアイテムを選んだとして、
onListItemClick()メソッドが呼び出されます。
ListViewのアイテムがチェックされたか、されてないかを判断するために、
onListItemClick()メソッドの2番目の引数を使います。

import android.widget.CheckedTextView;
...
public void onListItemClick(ListView parent, View v,
    int position, long id){
  CheckedTextView item = (CheckedTextView) v;
  Toast.makeTect(this, os[position] + " checked : " +
      !item.isChecked(), Toast.LENGTH_SHORT).show();
}

2番目の引数はListViewで選ばれたアイテムのViewを返します。
この場合、onListItemClick()メソッドの2番目の引数は、
CheckedTextViewオブジェクトを返します。
このオブジェクトを返すためには、
isChecked()メソッドを使ってオブジェクトがチェックされているか、
されていないかをチェックできます。
この例で注意がいるのは、isChecked()メソッドを
無効にする必要があるということで、これはアイテムが選ばれたときに、
onListClick()メソッドはアイテムのチェックボックスを
チェックする、しないの前にまず動き始めます。
ListViewにある他の利点は、
テキストフィルタリングをサポートしていることです。
もし、デバイスがキーボードを使えるようなら、
ListViewのアイテムの名前に入力すると、入力したテキストと
マッチしたアイテムだけを自動的にListViewを表示させていきます。
ListView上でフィルタリングできるようにするために、
setTextFilterEnabled()メソッドを呼び出します。

ListView 1stView = getListView();
//1stView.setChoiceMode(ListView,CHOICE_MODE_NONE);
//1stView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
1stView.setChoiceMode(ListView.CHOICE_NODE_MULTIPLE);
1stView.setTextFilterEnabled(true);

ちょっと注釈

初期設定では、Androidエミュレータはキーボード入力を
サポートしていません。
エミュレータの次のスクリーンにキーボードがあっても
初期設定ではサポートしていないので、ご注意を。
Androidエミュレータにキーボードをサポートさせるには、
以下のような段階を踏みます。
1,EclipseではWindow|AVD(Android emulator)マネージャを選ぶ。
2,特定のAVDを選び、編集を選ぶ。
3,ハードウェアセクションの下にあるNewをクリックする。
4,キーボードサポートプロパティを選ぶ。
5,最初は、noになっているので、クリックしてYesに変更。
6,AVD編集をクリックして、変更を保存する。


ホーム
便利堂ロゴ
inserted by FC2 system