2013-04-30 94 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。你會得到點擊位置。並且您可以在該位置顯示彈出窗口。