2011-01-22 12 views
0
public class ActivityForShow extends Activity 

{ 
    //have a ListView layout 
    ListView.setAdapter(SingleRowAdapter); 
} 

public class SingleRowAdapter extends ArrayAdapter 
{ 
    //every row has a CheckBox ,a TextView and a Button 
} 

CheckBoxとButtonイベントを処理し、背景作業を行い、結果をダイアログに表示します。
ActivityForShowでチェックボックスとボタンの値を取得する方法は?
findViewById()は例外を発生させます。カスタマイズされたListViewのイベントハンドル

答えて

0

私はあなたがActivityForShowクラスでそれをしたいとは思わない。代わりに、すべてのイベントハンドラをSingleRowAdapter#getItem(int)メソッド内に登録します(これをオーバーライドする必要があります)。このメソッドでは、指定された行のビューを作成して、行(位置)を確認し、CheckBox、Buttonなどのイベントハンドラを登録できます。

+0

しかし、SingleRowAdapterクラスでは、ダイアログを作成できません。 – outcast

0

明らかに、finviewbyidメソッドでエラーが発生します。 XMLで参照がele.youは、研究のために、このリンクを使用することができるときに使用する:あなたはonCheckedChangedイベントやActivityForShowonClickイベントを処理するようにhttp://developer.android.com/reference/android/widget/ArrayAdapter.html


+0

私はSingleRowAdapterクラスでfindByIdを見つける方法を知っています。私はAcitvityForShowクラスで参照を取得する方法を知りたいと思います。 – outcast

0

ですね。

もしそうなら、ActivityForShowは、(例えば、ローカル匿名内部クラスとして)OnCheckedChangeListenerインスタンスとOnClickListenerインスタンスを作成しており、そのコールバックとしてチェックボックスとボタンのウィジェットに接続する(例えばコンストラクタのparamsなど)SingleRowAdapterにそれらを与えるActivityForShow持っています。

また、ボタンをクリックするか、チェックボックスをオンにしたときに呼び出される独自のカスタムハンドラインタフェースを定義することもできます。 ActivityForShowにイベントを処理するコードでカスタムインターフェイスのインスタンスをインスタンス化します。 ActivityForShowSingleRowAdapterにしてください。最後に、SingleRowAdapterにチェックボックスとボタンにアタッチするイベントハンドラを作成させます。これらのイベントハンドラは、独自のカスタムハンドラを呼び出すだけです。

関連する問題