OnItemClick 如何从列表视图中获取点击项目的文本值
OnItemClick how to get text value of clicked item from list view
我想获取列表项的文本值,并在单击列表项时将其传递给另一个片段中的编辑文本。
这是我获取值并将其传递给另一个片段的代码。
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);
}
我能够接收数据,但不是显示的那样,例如。我没有收到列表项 "Christmas",而是收到类似 "com.example.johndoe.project.Category@fa9dc73"
的内容
另外,我如何才能在点击时更改片段?
非常感谢任何帮助,谢谢!
I am able to receive the data but not as is displayed eg. Instead of receiving the list item "Christmas", I am getting something like "com.example.johndoe.project.Category@fa9dc73"
因为 adapterView.getItemAtPosition(i)
可能会返回给您自定义型号 class 而不是 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);
}
});
您将 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);
}
});
--> adapterView.getItemAtPosition(i)
不是字符串!
所以替换,--------
String clickedItem = adapterView.getItemAtPosition(i).toString().trim();
与
String clickedItem = ((Category)adapterView.getItemAtPosition(i)).getMyTextproperty();
能分享一下模型就好了class。
我想获取列表项的文本值,并在单击列表项时将其传递给另一个片段中的编辑文本。
这是我获取值并将其传递给另一个片段的代码。
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);
}
我能够接收数据,但不是显示的那样,例如。我没有收到列表项 "Christmas",而是收到类似 "com.example.johndoe.project.Category@fa9dc73"
的内容另外,我如何才能在点击时更改片段?
非常感谢任何帮助,谢谢!
I am able to receive the data but not as is displayed eg. Instead of receiving the list item "Christmas", I am getting something like "com.example.johndoe.project.Category@fa9dc73"
因为 adapterView.getItemAtPosition(i)
可能会返回给您自定义型号 class 而不是 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);
}
});
您将 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);
}
});
--> adapterView.getItemAtPosition(i)
不是字符串!
所以替换,--------
String clickedItem = adapterView.getItemAtPosition(i).toString().trim();
与
String clickedItem = ((Category)adapterView.getItemAtPosition(i)).getMyTextproperty();
能分享一下模型就好了class。