3

Android アプリケーションがあります。から派生したアクティビティの 1 つで、ListActivityを実装しましたOnItemLongClickListenerListItemLongClickされた関連リストアイテム内の削除ボタンを有効にしたい。これどうやってするの?

    OnItemLongClickListener listener =  new OnItemLongClickListener(){
        public boolean onItemLongClick(AdapterView<?> av, View v, int position, long id) {
            Account a = null;
            a = (Account) av.getItemAtPosition(position);               
            Toast.makeText(AccountActivity.this, "Long Clicked : " + a.getAccountName(), Toast.LENGTH_LONG).show();

            //instead of the toast, I need to show/enable a button here...
        }
    };
    getListView().setOnItemLongClickListener(listener);
4

4 に答える 4

3

.xml

  <Button
  android:id="@+id/imgdelete"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" 
  android:visibility="invisible"/>

.java

lv.setOnItemLongClickListener(new OnItemLongClickListener() {     

@Override
public boolean onItemLongClick(AdapterView<?> arg0, View view, int arg2, long arg3) {

       view.findViewById(R.id.imgdelete).setVisibility(View.INVISIBLE);
       return false;

 }            

});
于 2012-12-06T11:52:32.497 に答える
2

アダプターの get view メソッドで、ボタンに一意の ID を設定します

btn.setId(position);

次に、クリックリスナーで

OnItemLongClickListener listener =  new OnItemLongClickListener(){
public boolean onItemLongClick(AdapterView<?> av, View v, int position, long id) {    
    Button btn = (Button) v.findViewById(position);
    btn.setEnabled(true);
}
};`
于 2012-12-06T11:49:07.690 に答える
1

ListView の行レイアウト内に Button があると仮定すると、それを表示することができます true`

OnItemLongClickListener listener =  new OnItemLongClickListener(){
    public boolean onItemLongClick(AdapterView<?> av, View v, int position, long id) {
        Account a = null;
        a = (Account) av.getItemAtPosition(position);               
        v.findViewById(R.id.btnid).setVisiBility(View.VISIBLE);
    }
};`
于 2012-12-06T11:35:32.423 に答える
1

デフォルト値でブールフラグisDeleteVisibleを追加できます。Accountfalse

次に、OnItemLongClickListenerそれをtrueに設定して呼び出しますadapter.notifyDataSetChanged()

アダプターのgetViewチェックisDeleteVisibleで、削除ボタンを表示または非表示にします。

于 2012-12-06T11:23:39.633 に答える