如何从listview android的主列表中获取所选项目的文本
在这种情况下,当我长按列表上下文菜单中的任何名称时,它会弹出,然后再次要求选择其中一个选项 我想要的是为在主listview中选择的名称生成一个toast。为了更好地理解,附上了图片。例如,当我向大卫·希克斯博士施压时,应该为他的名字干杯 有人能帮我吗如何从listview android的主列表中获取所选项目的文本,android,eclipse,listview,Android,Eclipse,Listview,在这种情况下,当我长按列表上下文菜单中的任何名称时,它会弹出,然后再次要求选择其中一个选项 我想要的是为在主listview中选择的名称生成一个toast。为了更好地理解,附上了图片。例如,当我向大卫·希克斯博士施压时,应该为他的名字干杯 有人能帮我吗 package com.example.tamukcompscfaculty; import android.app.ListActivity; import android.os.Bundle; import android.view.Con
package com.example.tamukcompscfaculty;
import android.app.ListActivity;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.MenuInflater;
import android.view.View;
import android.widget.ArrayAdapter;
public class MainActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] Professors = getResources().getStringArray(R.array.Professors);
ArrayAdapter<String> ProgAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Professors);
setListAdapter(ProgAdapter);
registerForContextMenu(getListView());
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
if(v==getListView()){
MenuInflater menuInflater=getMenuInflater();
menu.setHeaderTitle(R.string.More);
menuInflater.inflate(R.menu.details, menu);
}
super.onCreateContextMenu(menu, v, menuInfo);
}
}
package com.example.tamukcompscfaculty;
导入android.app.ListActivity;
导入android.os.Bundle;
导入android.view.ContextMenu;
导入android.view.ContextMenu.ContextMenuInfo;
导入android.view.MenuInflater;
导入android.view.view;
导入android.widget.ArrayAdapter;
公共类MainActivity扩展了ListActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[]Professors=getResources().getStringArray(R.array.Professors);
ArrayAdapter ProgAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,Professors);
setListAdapter(ProgAdapter);
registerForContextMenu(getListView());
}
@凌驾
public void onCreateContextMenu(ContextMenu菜单、视图v、ContextMenuInfo菜单信息){
如果(v==getListView()){
MenuInflater MenuInflater=getMenuInflater();
menu.setHeaderTitle(R.string.More);
菜单充气(右菜单详情菜单);
}
super.onCreateContextMenu(menu,v,menuInfo);
}
}
Xml文件
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.tamukcompscfaculty.MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/profs"
android:layout_alignParentTop="true"
android:layout_marginTop="33dp"
android:text="@string/FacultyText"
android:textColor="#000000"
android:textSize="20sp"
android:textStyle="bold|italic" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginLeft="-25dp" >
</ListView>
<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="35dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignRight="@+id/textView1"
android:scaleType="fitXY"
android:src="@drawable/engineering" />
</RelativeLayout>
item_data.xml是Values文件夹中的文件
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name = "Professors">
<item >Dr. David Hicks</item>
<item >Dr. Mohammad S. Khan</item>
<item >Dr. Young Lee</item>
<item >Dr. Mais Nijim</item>
<item >Dr. Ashraf Yaseen</item>
<item >Ms. Jeong Yang</item>
<item >Dr. Abdelrahman Elleithy</item>
<item >Dr. Wei-Da Hao</item>
<item >Dr. Syed Iqbal Omar</item>
<item >Dr. Muhammad Aurangzeb</item>
<item >Dr. Gahangir Hossain</item>
</string-array>
</resources>
大卫·希克斯博士
穆罕默德·S·汗博士
李杨博士
梅斯·尼吉姆博士
阿什拉夫·亚辛博士
Jeong Yang女士
Abdelrahman Ellethy博士
魏大豪博士
赛义德·伊克巴尔·奥马尔博士
穆罕默德·奥朗泽布博士
加汉吉尔·侯赛因博士
Strings.Xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">TamukCompScFaculty</string>
<string name="action_settings">Settings</string>
<string name="FacultyText"><u>Faculty Office Hours Details</u></string>
<string name="Office_Hours">Check Office Hours</string>
<string name="Email">Email Id</string>
<string name="Phonenumber">Phone Number</string>
<string name="More"><u>Click below to check the details</u></string>
<string name="title_activity_start">StartActivity</string>
<string name="hello_world">Hello world!</string>
</resources>
塔穆克学院
设置
教员办公时间详情
检查办公时间
电子邮件Id
电话号码
单击下面查看详细信息
星触觉
你好,世界!
首先,将您的设置为成员变量,然后覆盖onListItemClick(ListView l、View v、int position、long id)
,您可以从中获得单击列表项的位置。因此,您的代码将是:
public class MainActivity extends ListActivity {
private String[] Professors;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Professors = getResources().getStringArray(R.array.Professors);
ArrayAdapter<String> ProgAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Professors);
setListAdapter(ProgAdapter);
registerForContextMenu(getListView());
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
if(v==getListView()){
MenuInflater menuInflater=getMenuInflater();
menu.setHeaderTitle(R.string.More);
menuInflater.inflate(R.menu.details, menu);
//get the position of row clicked
AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
int position = info.position;
Toast.makeText(MainActivity.this, Professors[position], Toast.LENGTH_SHORT).show();
}
super.onCreateContextMenu(menu, v, menuInfo);
}
}
public类MainActivity扩展了ListActivity{
私人字符串[]教授;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Professors=getResources().getStringArray(R.array.Professors);
ArrayAdapter ProgAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,Professors);
setListAdapter(ProgAdapter);
registerForContextMenu(getListView());
}
@凌驾
public void onCreateContextMenu(ContextMenu菜单、视图v、ContextMenuInfo菜单信息){
如果(v==getListView()){
MenuInflater MenuInflater=getMenuInflater();
menu.setHeaderTitle(R.string.More);
菜单充气(右菜单详情菜单);
//获取单击的行的位置
AdapterContextMenuInfo信息=(AdapterContextMenuInfo)菜单信息;
int位置=信息位置;
Toast.makeText(MainActivity.this,Professors[position],Toast.LENGTH_SHORT).show();
}
super.onCreateContextMenu(menu,v,menuInfo);
}
}
您应该实现OnItemClickListener,然后重写方法onItemClick,不要忘记在您创建的方法中注册侦听器
public class MainActivity extends ListActivity implements OnItemClickListener {
private String[] Professors;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Professors = getResources().getStringArray(R.array.Professors);
ArrayAdapter<String> ProgAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, Professors);
setListAdapter(ProgAdapter);
getListView().setOnItemClickListener(this)
registerForContextMenu(getListView());
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
if(v==getListView()){
MenuInflater menuInflater=getMenuInflater();
menu.setHeaderTitle(R.string.More);
menuInflater.inflate(R.menu.details, menu);
}
super.onCreateContextMenu(menu, v, menuInfo);
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
Toast.makeText(MainActivity.this, Professors[position], Toast.LENGTH_SHORT).show();
}
}
public类MainActivity扩展了ListActivity实现了ListListener{
私人字符串[]教授;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Professors=getResources().getStringArray(R.array.Professors);
ArrayAdapter ProgAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,Professors);
setListAdapter(ProgAdapter);
getListView().setOnItemClickListener(此)
registerForContextMenu(getListView());
}
@凌驾
public void onCreateContextMenu(ContextMenu菜单、视图v、ContextMenuInfo菜单信息){
如果(v==getListView()){
MenuInflater MenuInflater=getMenuInflater();
menu.setHeaderTitle(R.string.More);
菜单充气(右菜单详情菜单);
}
super.onCreateContextMenu(menu,v,menuInfo);
}
@凌驾
受保护的void onListItemClick(列表视图l、视图v、整数位置、长id){
super.onListItemClick(左、右、位置、id);
Toast.makeText(MainActivity.this,Professors[position],Toast.LENGTH_SHORT).show();
}
}
试试这个:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[] Professors = getResources().getStringArray(R.array.Professors);
ArrayAdapter<String> ProgAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, Professors);
setListAdapter(ProgAdapter);
registerForContextMenu(getListView());
getListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(MainActivity.this, Professors[position], Toast.LENGTH_SHORT).show();
}
});
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String[]Professors=getResources().getStringArray(R.array.Professors);
ArrayAdapter ProgAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,Professors);
setListAdapter(ProgAdapter);
registerForContextMenu(getListView());
getListView.setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
公共无效onItemClick(AdapterView AdapterView、View视图、int i、long l){
Toast.makeText(MainActivity.this,Professors[position],Toast.LENGTH_SHORT).show();
}
});
}
“附加图像以便更好地理解”Where?@Ajay可以在onCreated方法中添加此行:getListView().setOnItemClickListener(this);我将更新我的答案。@A可以看到更新的答案。这应该对你有用。@Ajay如果有帮助,请接受我的回答。:)