繁体   English   中英

获取在自定义适配器listview android中选择的项目

[英]Get item selected in the custom adapter listview android

我的每个列表视图项目都有自己的linearlayout组件。列表视图位于活动中,并且onItemClick本身。

在我的自定义适配器文件中,我对该线性布局进行了onclick,

private ArrayList<Book> bookArray; // this is the data source
 .........

LinearLayout imgLayout = (LinearLayout) rowView.findViewById(R.id.imageLayout);
imgLayout.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) { // fire user Like
        //*** how can I get which item is selected here?

但是,如何获得单击了线性布局的项目索引?

关于锤子

使用setTag()getTag()记住位置,并在单击LinerLayout时使用它。

在getView中

LinearLayout imgLayout = (LinearLayout) rowView.findViewById(R.id.imageLayout);
imgLayout .setTag(position);

并进入LinerLayout的onclick中,将其作为

imgLayout.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        int position = (Integer)v.getTag();
        //.... 
    }
}

您可以为线性布局设置标签,在onClick内可以获取标签,该标签将返回clickEvent获取触发器的位置。

请参阅以下代码:

private ArrayList<Book> bookArray; // this is the data source
 .........

LinearLayout imgLayout = (LinearLayout) rowView.findViewById(R.id.imageLayout);
imgLayout.setTag(position);
imgLayout.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) { // fire user Like
        //*** how can I get which item is selected here?
Log.d(TAG,"Clicked Pos of Row"+v.getTag().toString();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM