Android 如何从listView上的选定项中提取文本
我有一个包含一些项目的列表视图。我想从所选项目中获取文本 以下是我的列表适配器和侦听器:Android 如何从listView上的选定项中提取文本,android,android-layout,Android,Android Layout,我有一个包含一些项目的列表视图。我想从所选项目中获取文本 以下是我的列表适配器和侦听器: ListView lv = (ListView)findViewById(R.id.listView1); lv.setAdapter(new ArrayAdapter<Country>( this,R.layout.list_black_text,R.id.list_content, values)); lv.setOnItemClickListen
ListView lv = (ListView)findViewById(R.id.listView1);
lv.setAdapter(new ArrayAdapter<Country>(
this,R.layout.list_black_text,R.id.list_content, values));
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
??????
}});
}
我已经找到了解决方案,也许有人会需要它:
ListView lv = (ListView)findViewById(R.id.listView1);
lv.setAdapter(new ArrayAdapter<Country>(
this,R.layout.list_black_text,R.id.list_content, values));
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView textView = (TextView) view.findViewById(R.id.list_content);
String text = textView.getText().toString();
System.out.println("Choosen Country = : " + text);
}});
ListView lv=(ListView)findViewById(R.id.listView1);
低压设置适配器(新阵列适配器(
这个,R.layout.list_black_text,R.id.list_content,value));
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
TextView TextView=(TextView)view.findViewById(R.id.list\u content);
String text=textView.getText().toString();
System.out.println(“选择国家=:”+文本);
}});
如果您正在使用列表填充onItemClick()方法中的ListView
您需要能够在内部类中访问此列表,请使用以下命令:
String selectedFromList = (String) (lv.getItemAtPosition(position));
无论列表中的数据类型是什么,都要相应地强制转换
希望能有所帮助。:) 试着这样做,把它插入到你的监听器中,我不确定你的国家级是什么样子:
String s = values.get(position).getCountryName();
Log.e("LISTVIEW", "selected item text = "+s);
or
String s = values.get(position).toString();
Log.e("LISTVIEW", "selected item text = "+s);
为此,您需要编写以下内容:
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView textView = (TextView) view.findViewById(R.id.list_content);
String text = lv.get(position).toString().trim();
System.out.println("Chosen Country = : " + text);
}});
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
TextView TextView=(TextView)view.findViewById(R.id.list\u content);
String text=lv.get(position.toString().trim();
System.out.println(“所选国家=:”+文本);
}});
其他答案看起来不错,但我想我应该把所有的问题都归纳成一个完整的答案
有多种方法可以实现这一点,这还取决于您是从简单列表视图
还是从自定义列表视图(带有自定义列表项.xml)获取文本。
用于简单列表视图
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String text = lv.get(position).tostring().trim();//first method
final String text = ((TextView)view).getText();// second method
}});
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView textView = (TextView) view.findViewById(R.id.list_content);
//where list_content is the id of TextView in listview_item.xml
}});
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
String text=lv.get(position.tostring().trim();//第一个方法
最终字符串text=((TextView)视图).getText();//第二个方法
}});
用于自定义列表视图
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
String text = lv.get(position).tostring().trim();//first method
final String text = ((TextView)view).getText();// second method
}});
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
TextView textView = (TextView) view.findViewById(R.id.list_content);
//where list_content is the id of TextView in listview_item.xml
}});
lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父级、视图、,
内部位置,长id){
TextView TextView=(TextView)view.findViewById(R.id.list\u content);
//其中,list_content是listview_item.xml中TextView的id
}});
与他人的问题答案
@Android Killer
字符串转换丢失
@Rishi
没有给出关于使用R.id.list\u内容的详细信息这里供任何偶然发现这一点的人参考。
在我的例子中,我有一个自定义适配器类,其类型与我的POJO类相同。还有我想传递到适配器并显示在util.List
类的ListView
中的项目
我成功地将数据传递到ListView,但还想获取当前选定的列表的文本
例如:我传递的数据是一个讲师所任教学校的列表,因此他必须选择他当时想要合作的特定学校,登录时我想通过讲师选择的当前学校传递一个新的活动的意向
因此,我的ListView onClick()
private void loginsucess(){
progressDialog.disclose();
如果(mySchoolList.size()>1){
schoolsListView=新列表视图(MainActivity.this);
schoolsArrayAdapter=newschoolsistadapter(MainActivity.this,android.R.layout.simple\u list\u item\u 1,mySchoolsList);
setAdapter(schoolslaryadapter);
dialog=新建对话框(MainActivity.this);
对话框.setContentView(schoolsListView);
setTitle(“欢迎”+staff.getFullName());
dialog.show();
schoolsListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
//.getName()是从学校POJO类访问的。
字符串schoolName=schoolsArrayAdapter.getItem(位置).getName();
意图=新意图(MainActivity.this、NavMainActivity.class);
意图。putExtra(“sentinent”,学名);
星触觉(意向);
}
});
}否则{
意图=新意图(MainActivity.this、NavMainActivity.class);
intent.putExtra(“sentinent”,recieveName);
星触觉(意向);
}
}
希望有一天这能拯救一些人,因为这里所有的解决方案都不适合我。干杯 它肯定会起作用的!希望您满意强>
ListView lv=(ListView)findViewById(R.id.listView1);
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
String text = (String) lv.getItemAtPosition(arg2);
Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
}
});
ListView lv=(ListView)findViewById(R.id.listView1);
lv.setOnItemClickListener(新的OnItemClickListener(){
@凌驾
公共链接(AdapterView arg0、视图arg1、内部arg2、,
长arg3){
//TODO自动生成的方法存根
String text=(String)lv.getItemAtPosition(arg2);
Toast.makeText(getApplicationContext(),text,Toast.LENGTH_SHORT).show();
}
});
您好,我正在使用带有注册上下文菜单的CustomListView。在这种情况下,访问自定义列表行内项目的方式为:
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.add:
TextView textView = (TextView) info.targetView.findViewById(R.id.yourItem);
String text = textView.getText().toString();
Toast.makeText(getApplicationContext(), "Selected " + text, Toast.LENGTH_LONG).show();
default:
return super.onContextItemSelected(item);
}
}
其中R.id.yourItem是自定义行中的文本视图
附:这是我的第一篇文章,希望能有所帮助;-)
请参见…您可以直接获得文本视图
请尝试以下代码:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),(String)parent.getItemAtPosition(position),Toast.LENGTH_SHORT).show();
}
});
listView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
Toast.makeText(getApplicationContext(),(String)parent.getIte
public void onItemClick(**AdapterView**<?> parent, View view,
int position, long id) {
}
TextView selectedText=(TextView) parent.findViewById(R.id.textView2);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(),(String)parent.getItemAtPosition(position),Toast.LENGTH_SHORT).show();
}
});
myListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> av,
View view, int position, long l) {
String text = String.valueOf(myListView.getItemAtPosition(position));
}
}
});
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
TextView text1 = (TextView) findViewById(R.id.Text1);
TextView text2 = (TextView) findViewById(R.id.Text2);
String txt_1 = ""+text1.getText().toString().trim();
String txt_2 = ""+text2.getText().toString().trim();
//Other_Related_Work
}
});
<TextView
<!-- rest of the code -->
android:id="@+id/content"
android:onClick="get_content" <!-- Just add this -->
/>
public void get_content(View view){
TextView textView = view.findViewById(R.id.content);
System.out.println("Text is: "+textView.getText().toString());
}
ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myFamily);
listViewDemo.setAdapter(arrayAdapter);
listViewDemo.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
//String nameSelectedfromList = arrayAdapter.getItem(position).toString();
String nameSelectedfromList = listViewDemo.getItemAtPosition(position).toString();
Log.i("Clicked Item", nameSelectedfromList);
}
});