OnItemClick 如何从列表视图中获取单击项目的文本值
Posted
技术标签:
【中文标题】OnItemClick 如何从列表视图中获取单击项目的文本值【英文标题】:OnItemClick how to get text value of clicked item from list view 【发布时间】:2018-05-04 14:57:00 【问题描述】:当单击列表项时,我想获取列表项的文本值并将其传递给另一个片段中的编辑文本。
这是我获取值并将其传递给另一个片段的代码。
lv_categories.setOnItemClickListener(new AdapterView.OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l)
String clickedItem = adapterView.getItemAtPosition(i).toString().trim();
SM.sendData(clickedItem);
);
发送数据方法
@Override
public void sendData(String message)
String tag = "android:switcher:" + R.id.container + ":" + 1;
SearchFragment searchFragment = (SearchFragment) getSupportFragmentManager().findFragmentByTag(tag);
searchFragment.displayReceivedData(message);
我能够接收数据,但不是如显示的那样。我没有收到“圣诞节”列表项,而是收到类似“com.example.johndoe.project.Category@fa9dc73”的内容
我如何在点击时更改片段?
非常感谢您的帮助!
【问题讨论】:
与问题分享你在listview中传递的模型类 ***.com/questions/47363151/… 【参考方案1】:我能够接收数据,但不是如显示的那样。我没有收到“圣诞节”列表项,而是收到类似“com.example.johndoe.project.Category@fa9dc73”的内容
因为 adapterView.getItemAtPosition(i)
可能会返回您的自定义模型类而不是 String
值
试试这个
lv_categories.setOnItemClickListener(new AdapterView.OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l)
YourModelClass data = adapterView.getItemAtPosition(i);
SM.sendData(data.getMessage);
);
【讨论】:
【参考方案2】:--> adapterView.getItemAtPosition(i)
不是字符串!
所以替换,--------
String clickedItem = adapterView.getItemAtPosition(i).toString().trim();
与,
String clickedItem = ((Category)adapterView.getItemAtPosition(i)).getMyTextproperty();
如果你能分享你的模型类就好了。
【讨论】:
【参考方案3】:您将class
转换为string
显然会打印带有偏移量的classname
,请在下面尝试
lv_categories.setOnItemClickListener(new AdapterView.OnItemClickListener()
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l)
String clickedItem = ((Category)adapterView.getItemAtPosition(i)).getMyTextproperty();
SM.sendData(clickedItem);
);
【讨论】:
以上是关于OnItemClick 如何从列表视图中获取单击项目的文本值的主要内容,如果未能解决你的问题,请参考以下文章
单击列表项时应用程序崩溃:FATAL EXCEPTION: main, .onItemClick