0

これを説明するのはわかりませんが、ここに移動します。リストが表示されます...そのリストのアイテムを長押しすると、画像ボタンが実際に削除ボタンとして表示されます。長押しすると、リストの別のアイテムクリックした最初のアイテムのボタンを非表示にしたい...アイテムを長押しするたびに画像ボタンが表示され、別のアイテムをクリックするとそのボタンが非表示になり、新しいアイテムをクリックしたボタンが表示されます。これを行う方法に関する入力は大歓迎です。または、これを効率的に行う方法を教えていただければ、共有してください。tnx多く

4

3 に答える 3

1

許可されているのは1つだけなので、前の削除ボタンを追跡するだけで済みます。ロングクリックリスナーでは、前のボタンを削除して新しいボタンを作成できます。

ImageButton prevDelete = null;

...

list.setOnItemLongClickListener (new OnItemLongClickListener() {
  public boolean onItemLongClick(AdapterView parent, View view, int position, long id)      {
        deleteButton(prevButton); // check if not null in the function
        prevDelete = createButton(view); // draw button at view
        return true;
  }
});

おそらくすでに関数createButtonとを実装していますdeleteButton

于 2012-07-30T09:08:34.853 に答える
1

これを試して、

リストにアダプタを使用していると仮定します...

    final ImageButton prevButton=null;
    row.setOnLongClickListener(new OnLongClickListener() {          
        @Override
        public boolean onLongClick(View arg0) {
            ImageButton currButton=row.findViewById(R.id.<button_id>);
            currButton.setVisibility(View.VISIBLE);
            if(prevButton!=null)
                prevButton.setVisibility(View.gone);
            prevButton=currButton;
            return true;
        }
    });
于 2012-07-30T09:14:31.653 に答える
0

質問はかなり紛らわしいです...しかし、理解したことから、リストアイテムの長押しを検出する必要があることがわかりました。AdapterView.OnItemLongClickListenerを試しましたか。

somelist.setOnItemLongClickListener (new OnItemLongClickListener() {
  public boolean onItemLongClick(AdapterView parent, View view, int position, long id) {
    //do your stuff of showing\hiding button here...
  }
});
于 2012-07-30T09:10:47.770 に答える