listview android中的按钮位置

listview android中的按钮位置,android,android-layout,popup,Android,Android Layout,Popup,我在listview上有一个按钮,单击该按钮将显示弹出窗口。我已经成功地实现了这一点。但问题是我想在点击的按钮位置显示弹出窗口 View layout = inflater.inflate(R.layout.popup_layout,null); pwindo = new PopupWindow(layout, 300, 250, true); pwindo.showAtLocation(layout, Gravity.NO_GRAVITY, 30,

我在listview上有一个按钮,单击该按钮将显示弹出窗口。我已经成功地实现了这一点。但问题是我想在点击的按钮位置显示弹出窗口

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
        }
    });

您可以通过以下代码获得listview中按钮单击的位置

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

您需要将buttons标记设置为其位置,单击后需要获取它:

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

单击该按钮时,您可以获得该项在列表中的位置。使用

list.getFirstVisiblePosition();

为了得到这个位置。从位置中减去FirstVisiblePosition。您将获得点击位置。您可以在该位置显示弹出窗口。

使用QuickAction。示例:


按钮在哪里?此按钮没有答案??按钮将位于列表VIW的右侧。但可以有多个按钮具有相同的功能id@Hardikcan你显示一个屏幕截图,这样会更容易理解。也发布你的按钮代码。好的,但是你能告诉我如何在那个位置显示弹出窗口吗?在那个位置上意味着??您只需要显示弹出窗口或更多?继续Hardik的回答,您可以使用以下方法定位土司。设置重力(Gravity.TOP | Gravity.LEFT,x,y),其中x和y是偏移量。您可以使用list.getFirstVisiblePosition()方法计算x和y,正如比尔·盖茨在回答您的问题时所建议的那样。