我有一个带有自定义适配器和行布局的列表视图。该行包含textview,imageview和单选按钮。实现该方法后,我无法获取所单击视图的位置。
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
Log.d("menuinfo: ",""+menuInfo); //This returns null
menu.setHeaderTitle("Select action");
getMenuInflater().inflate(R.menu.menu_testing, menu);
}
我认为罪魁祸首是单选按钮,但它是列表视图的重要部分,我无法将其删除。任何解决方法和建议表示赞赏。
答案 0 :(得分:1)
您可以获取已从适配器类本身单击的行的位置
public class Myadapter extends BaseAdapter implements OnClickListener,OnBufferingUpdateListener{
@Override
public View getView(final int position, View convertView, final ViewGroup arg2) {
// TODO Auto-generated method stub
View vi = convertView;
crntposition=position;
if(convertView==null){
Context context=arg2.getContext();
inflater = ( LayoutInflater )activity.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
vi = inflater.inflate(R.layout.songlistrow, null);
// vi.setTag(R.id.parentlay, holder.parnt);
}
// your code
vi.setOnClickListener(new OnItemClickListener(crntposition));
return vi;
}
private class OnItemClickListener implements View.OnClickListener {
private int mPosition;
OnItemClickListener(int position) {
mPosition = position;
//System.out.println("pos"+mPosition);
}
@Override
public void onClick(View arg0) {
System.out.println("current position"+mPosition);// you can use the position here I have just printed it
}
}
答案 1 :(得分:1)
在适配器中,使用
将radiobutton视图的标记设置为currentPosition yourbutton.setTag(position).
然后在radioButton上设置onCheckedChangeListener。
在侦听器的onCheckedChaged方法中,您将获得状态已更改的按钮。从该按钮,执行
yourButton.getTag(),
这将给你这个radiobutton所属的位置.. 看看它是否有效。