gpt4 book ai didi

java - Android获取ListView同一行的Textview文本

转载 作者:行者123 更新时间:2023-12-02 00:12:38 24 4
gpt4 key购买 nike

我的 BaseAdapter 适配器中有以下代码:

public View getView(final int position, View convertView, ViewGroup parent) {
View vi=convertView;

if(convertView==null)
vi = inflater.inflate(R.layout.facebook_friends_layout, null);

TextView friendsName = (TextView)vi.findViewById(R.id.tvFacebookName); // Friends thumb
friend_image=(ImageView)vi.findViewById(R.id.ivFacebookPicture); // thumb image

song= new HashMap<String, String>();
song = data.get(position);
friendsName.setText(song.get(MyFriends.KEY_FBNAME));
//Log.i("Facebook Pangalan", ""+MyFriends.KEY_FBNAME);

FriendName = (String) friendsName.getText().toString();

FBID = song.get(MyFriends.KEY_FBID);
String fbAvatarUrl = "http://graph.facebook.com/"+ FBID +"/picture";
//Log.i("FBID", FBID);
BitmapManager.INSTANCE.loadBitmap(fbAvatarUrl, friend_image, 100,100);
Button btn=(Button)vi.findViewById(R.id.btnAdd);
if (FBID.equals(""))
{
btn.setVisibility(View.GONE);
}
else
{
btn.setVisibility(View.VISIBLE);
}
btn.setOnClickListener(new OnClickListener(){

public void onClick(View arg0) {
LOCK_BASEDATA = MyFriends.LOCK_BASEDATA;
if (LOCK_BASEDATA.equals("0"))
{
//FACEBOOK FRIENDS
Log.i("", ""+FriendName);
//AddfromFacebookFriends();
}
else if (LOCK_BASEDATA.equals("1"))
{
//MY REQUEST
//((MyFriends)context).SetMyRequest();
//Log.i("LangYa", "Langya");
}
else if (LOCK_BASEDATA.equals("2"))
{
//FRIEND REQUEST
//((MyFriends)context).SetFriendRequest();
//d2papasok
AddFriendRequest();
}

}

});

return vi;
}

每当我点击按钮时,我都会记录我 friend 的名字。现在,当我单击按钮时,我的问题就开始了;我没有得到我想要的字符串。它正在从 ListView 的另一行获取字符串。

编辑谢谢,实际上我刚刚添加了这段代码

public void onClick(View arg0) {
LOCK_BASEDATA = MyFriends.LOCK_BASEDATA;
if (LOCK_BASEDATA.equals("0"))
{
//Object x =btn.getTag();
//String sa = x.toString();
View parentView = (View) arg0.getParent();
String textviewtext = ((TextView) parentView.findViewById(R.id.hiddentv)).getText().toString();
//FACEBOOK FRIENDS

AddfromFacebookFriends(textviewtext);

}
else if (LOCK_BASEDATA.equals("1"))
{

我只是让我的 parent 查看以获得我想要的 TextView ,现在它可以工作了。还是谢谢了

最佳答案

您正在尝试使用以下代码获取 FriendName:

TextView friendsName = (TextView)vi.findViewById(R.id.tvFacebookName);
FriendName = (String) friendsName.getText().toString();

这不是您单击的 ListView 项目的 FriendName。它是新创建的 ListView 项目的 FriendName。因为在getView()中,你得到的ListView项是新创建的。

解决此问题的一种方法是:

使用 KunalK 建议的标签。我不确定它是否有效...我从未尝试过。

或者另一种方式是:

onButtonClicked 获取您单击的 ListView 项目的 Position,并从您正在使用的 ArrayList 获取相应的 Name

这里的Position不是getView()中的position参数。这再次给出了新创建的 ListView 项目的位置。

使用它来获取单击项目的实际位置:

int clickedItemPosition = yourListView.getPositionForView((View) yourButton.getParent());

关于java - Android获取ListView同一行的Textview文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12417789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com