如何获取列表视图的选定行的窗口小部件ID

时间:2012-11-22 13:19:39

标签: android facebook listview textview

我在我的应用程序中使用自定义列表视图。在我的行中,我有(两张图片,其余的文本视图)。

当我点击textview之一时,我想设置另一个textview数据。我写下面的代码来做这个

     likes.setOnClickListener(new OnClickListener() {


        public void onClick(View v) {
//          if(likes.getText().toString().equals("Like")){
               TextView t=(TextView)v;
              TextView likesnumber1 = (TextView) findViewById(R.id.likesnumber);
//            TextView  likesnumber = (TextView) convertView.findViewById(R.id.likesnumber);
                int i=  Integer.parseInt(likescount.get(position));

           if(like_or_ulike.get(position).equals("Like")){
                Log.e("inlike","like");
                like_or_ulike.set(position, "Unlike");
                t.setText(like_or_ulike.get(position));
                UrltoValue.getValuefromUrl("https://graph.facebook.com/"+objectid.get(position)+"/likes?access_token="+accesstoken+"&method="+"post");
//             listView.getAdapter().getItemAt(position);
               j=i+1;
               String s=Integer.toString(j);
            likescount.set(position, s);
             likesnumber1.setText(likescount.get(position));

            }
            else{
                Log.e("unlike","unlike");
                like_or_ulike.set(position, "Like");
                t.setText(like_or_ulike.get(position));
                UrltoValue.getValuefromUrl("https://graph.facebook.com/"+objectid.get(position)+"/likes?access_token="+accesstoken+"&method="+"DELETE");

                   j=i-1;
                 String s=Integer.toString(j);
                likescount.set(position, s);
                 likesnumber1.setText(likescount.get(position));
            }
        }
    });

当我单击textview时,如何获取特定行的另一个textview id。是否可以获取该特定行的ID。

2 个答案:

答案 0 :(得分:1)

如果您希望在同一行中获取textview,可以执行以下操作。

使用单击的textview获取其父级,然后使用父视图,您可以搜索textview:

View parent = (View) textViewThatWasClicked.getParent();
        if (parent != null) {
            TextView textViewThatYouWantToChange = parent.findViewById(R.id.textViewThatYouWantToChange);
            textViewThatYouWantToChange.setText(...);
        }

您需要将您查找的ID更改为其他textview的ID。如果您需要设置ID,可以在您使用的xml布局文件中执行此操作。

我不能很好地遵循你的代码,实际上给你代码,但这足以让你朝着正确的方向前进。

答案 1 :(得分:0)

如果您对listview中的每一行都有自定义布局,那么您可以在自定义视图中为每个视图提供ID,然后为列表视图设置setOnItemClickListener,您就可以将每一行作为视图到达。 当您像View一样访问您的行时,您可以使用view.findViewById并通过其ID从您的自定义视图中获取所有视图。