0

Android ICS 連絡先の移植に取り組んでいます。スター付き (お気に入り) TAB のコンテキスト メニューを追加したいのですが、その Fragment の ListView は非常に特別です。通常の ListView があり、ListView のすべてのアイテムには 2 つの小さなカスタマイズされたビューがあります。ユーザーが小さなビューを長時間押すと、コンテキスト メニューが表示されるように実装したいと考えています。私はどのように行いますか?ヒントをください!どうもありがとう!

4

2 に答える 2

1

カスタマイズされた List-Items を使用している場合は、目的のビューに特定のコールバック ルーチンを登録できます。これを行う場所は、bindView() または getView() メソッドです。

TextView tt = (TextView) v.findViewById(R.id.text1);
TextView bt = (TextView) v.findViewById(R.id.text2);
tt.setOnLongClickListener(myLongOnClickListener);
于 2012-04-10T09:00:13.140 に答える
1

小さなビューを作成する場所にこれを追加し、

    registerForContextMenu(YourSmallView);  

あなたのアクティビティでは、コンテキストメニューを処理できます

 @Override  
   public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
super.onCreateContextMenu(menu, v, menuInfo);  
    menu.setHeaderTitle("Context Menu");  
    menu.add(0, v.getId(), 0, "Action 1");  
    menu.add(0, v.getId(), 0, "Action 2");  
}  

 @Override  
   public boolean onContextItemSelected(MenuItem item) {  
        if(item.getTitle()=="Action 1"){
              function1(item.getItemId());
        }  
        else if(item.getTitle()=="Action 2"){
             function2(item.getItemId());
         }  
        else {
            return false;
        }  
    return true;  
    }  

または、ロングクリックリスナーをビューに設定できます

view.setOnLongClickListener(listener);
于 2012-04-10T08:55:21.973 に答える