listview android中的按钮位置
我在listview上有一个按钮,单击该按钮将显示弹出窗口。我已经成功地实现了这一点。但问题是我想在点击的按钮位置显示弹出窗口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,
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。示例: