2013-04-30 111 views
1

我有一个列表视图上的按钮,当点击时会显示弹出。我已经成功实现了这一点。但问题是,我想在点击按钮位置显示弹出。按钮位置在列表视图android

View layout = inflater.inflate(R.layout.popup_layout,null);    
    pwindo = new PopupWindow(layout, 300, 250, true); 
    pwindo.showAtLocation(layout, Gravity.NO_GRAVITY, 30, 40); 
    pwindo.setOutsideTouchable(true); 
    pwindo.setTouchable(true); 
    pwindo.setBackgroundDrawable(new BitmapDrawable()); 
    layout.setOnTouchListener(new OnTouchListener() { 



      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       // TODO Auto-generated method stub 
       pwindo.dismiss(); 
       return false; 
      } 
     }); 

按钮代码

vi = inflater.inflate(R.layout.list_row, null); 
vi.findViewById(R.id.statusImage).setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      // TODO Auto-generated method stub 
      showPopup();//to display popup thats given above 
     } 
    }); 
+0

哪里是你的按钮? – 2013-04-30 06:59:59

+0

对此没有答案? – user2291423 2013-04-30 07:00:19

+0

按钮将在listviw右侧,但可以有多个按钮相同的ID @ Hardik – user2291423 2013-04-30 07:01:10

回答

0

您可以通过下面的代码获得列表视图的按钮,点击位置。

(vi.findViewById(R.id.statusImage)).setOnClickListener(new OnClickListener() { 
    public void onClick(View arg0) { 
     Toast.makeText(Classname.this, "POSITION"+ position,Toast.LENGTH_SHORT).show(); 
     showPopup(); 
    } 
}); 
+0

好的,但你能告诉我如何显示该位置的弹出窗口? – user2291423 2013-04-30 07:40:56

+0

在那个位置意味着??你只需要显示弹出或更多? – 2013-04-30 07:41:44

+0

只想显示点击按钮位置 – user2291423 2013-04-30 08:36:04

1

您需要设置按钮标签作为它的位置,和你的onClick需要获得它:

button.setTag(position); 
button.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     int position = (Integer) v.getTag(); 
     // Do whatever you like with position 
    } 
}); 
1

当按钮被点击就可以得到该项目的列表中的位置。使用

list.getFirstVisiblePosition(); 

得到buttin位置。从位置减去FirstVisiblePosition。你会得到点击位置。并且您可以在该位置显示弹出窗口。