-1

私は、を持っていますListView lv、そして私はButton deleteリストビューの下部にあります(ボタンはリストビューの外にあります)。リストビュー内からボタンを処理する方法(背景の変更やボタンのテキストの設定など)に問題があります。私は自分のアダプターを持っていますが、public void getView(int pos, View convertView, ViewGroup parent)機能でボタンの変更を処理する必要があると思います。誰かが何か考えを持っていますか?P / s:この質問の要点は、「リストビュー内から他の要素を処理する方法」です。どんな提案でも大歓迎です!

4

3 に答える 3

1

ActivityまたはFragmentのメソッドからボタンへの参照を保存するだけではないと仮定するとonCreate、内部getViewにループを実装して、必要なViewParent実際のビューを検索するチェーンをたどる必要があります。次のようになります。

ViewParent nv = parent.getParent();
while(nv != null){
  if(View.class.isInstance(nv)){
    View button = findViewById(R.id.button_id);
    if(button != null){
      // FOUND IT!
      // do something, then break;
      break;
    }
  }
  nv = nv.getParent();
}

それをコンパイルまたはテストしませんでした、しかし...そのような何かはあなたが望むことをするはずです。詳細については、ViewParent.getParent()ドキュメントを参照してください。

于 2012-04-12T06:38:04.857 に答える
1

アクティビティでは、

Button delete = (Button) findViewById(R.id.delete);
CustomAdapter adapter = new CustomAdapter(delete);//add your argumente here

これで、アダプタでボタンのOnClickListenerを設定できます。

于 2012-04-12T06:39:42.847 に答える
0

カスタム配列アダプターを使用していると思います。その場合、ボタンへの参照をarrayadapterクラスに渡すことができます。

ただし、これでボタンを編集できるかどうかはわかりません。そうでない場合は、アクティビティからArrayAdapterにハンドラーを送信できます。したがって、アクティビティで次のようなハンドラーを作成します。

    protected Handler updateButtonHandler = new Handler() {
    @Override
    public void handleMessage(Message msg){
        //Update button
    }
};

そして、arrayadapterに参照があり、次のようになります。

updateButtonHandler.sendEmptyMsg(0);
于 2012-04-12T06:34:52.447 に答える