如何获取列表视图选定行的小部件ID
Posted
技术标签:
【中文标题】如何获取列表视图选定行的小部件ID【英文标题】:How to get widget ids of selected row of listview 【发布时间】:2012-11-10 21:42:27 【问题描述】:我在我的应用程序中使用自定义列表视图。在我的行中我有(两个图像,剩余的文本视图)。
当我点击一个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。
【问题讨论】:
是你想要的textview在同一行吗?还是不同? 我想要同一行的textview id,即当我点击like时的likescount id,因为我想设置值。 【参考方案1】:当您想在同一行中获取文本视图时,您可以执行以下操作。
使用被点击的文本视图获取它的父视图,然后使用父视图你可以搜索你的文本视图:
View parent = (View) textViewThatWasClicked.getParent();
if (parent != null)
TextView textViewThatYouWantToChange = parent.findViewById(R.id.textViewThatYouWantToChange);
textViewThatYouWantToChange.setText(...);
您需要将要查找的 id 更改为其他 textview 的 id。如果您需要设置一个 id,您可以在您使用的 xml 布局文件中执行此操作。
我无法很好地遵循您的代码,无法真正为您提供代码,但这应该足以让您朝着正确的方向前进。
【讨论】:
我只是想知道,android facebook 应用程序如何立即更新点赞数。这里我只是增加和减少值。我做得对吗? 如果这特别适用于 facebook,我建议查看 android facebook sdk developers.facebook.com/android【参考方案2】:如果列表视图中的每一行都有自定义布局,那么您可以为自定义视图中的每个视图提供 id,然后为您的列表视图设置 setOnItemClickListener,您将能够以视图的形式访问每一行。 当您可以像视图一样访问您的行时,您可以使用 view.findViewById 并通过它们的 id 从自定义视图中获取所有视图。
【讨论】:
但我想获取行的视图 ID,而不是在 itemclick 上。我想在单击行视图中的 textview 时获取 ID。 然后在适配器的 getView 中,您可以访问所有视图,并且可以在 getView 中设置 OnClickListener,在这种情况下,您可以访问所有其他视图(顺便说一句,在您的列表中使用 ViewHolders)。以上是关于如何获取列表视图选定行的小部件ID的主要内容,如果未能解决你的问题,请参考以下文章
.net如何在后台获取GridView选定行的id,绑定给一个变量
如何从自定义列表视图中获取选定项目并在 toast 消息中打印?