Java 如何从ListView中提取所选项目?
我有一个Listview,它只能选择一个项目。当该项被单击时,它将运行一个异步任务。在onPostExecute()中,会弹出一个AlertBox对话框。但是我要做的是让选中的项目显示在alertBox中,我已经尝试了我能想到的一切。任何帮助都将不胜感激,并提前向您表示感谢 这是我的ListView设置Java 如何从ListView中提取所选项目?,java,android,listview,textview,android-asynctask,Java,Android,Listview,Textview,Android Asynctask,我有一个Listview,它只能选择一个项目。当该项被单击时,它将运行一个异步任务。在onPostExecute()中,会弹出一个AlertBox对话框。但是我要做的是让选中的项目显示在alertBox中,我已经尝试了我能想到的一切。任何帮助都将不胜感激,并提前向您表示感谢 这是我的ListView设置 Public class MyClass extends Activity { list.setAdapter(new ArrayAdapter<String>
Public class MyClass extends Activity
{
list.setAdapter(new ArrayAdapter<String>(this, R.layout.vacation_tracks, vacation_menu));
list.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
for(int i = 0; i<vacation_menu.length; i++)
{
if(((TextView) view).getText().equals(vacation_menu[i]))
{
Sizes work = new Sizes();
work.execute(tempLink);
}
}
});
}
公共类MyClass扩展活动
{
list.setAdapter(新的ArrayAdapter(这个,R.layout.vacation_曲目,vacation_菜单));
list.setOnItemClickListener(新的OnItemClickListener()
{
public void onItemClick(AdapterView父对象、视图、整型位置、长id)
{
对于(int i=0;i您可以使用onItemClick
侦听器的position
参数从数据源获取单击的项,然后将此数据传递给AsyncTask对象,并在那里使用它(在警报框中显示)如果AsynTask
在您的活动中,则您可以访问listview
成员并获取所选项目。调用
mListView.getSelectedItem(); // returns the object associated with this item.
或
您可以通过参数将对象传递给AsyncTask
。
将标题字符串传递给Size
构造函数
Sizes work = new Sizes(mListView.getSelectedItem().getTitle());
work.execute(tempLink);
如果任务是在活动范围内定义的,则可以使用final
关键字:
final String alertBoxTitle = vacation_menu[i];
Sizes work = new Sizes();
work.execute(tempLink);
及
如果您的任务不在活动范围内,您可以将标题作为参数传递或通过setter传递。setter在您的情况下似乎更容易
在您的任务中:
String title;
public void setTitle(String title) {
this.title = title;
}
protected void onPostExecute(Float result) {
AlertDialog.Builder alertbox = new AlertDialog.Builder(Vacation.this);
alertbox.setMessage(title);
// ...
}
像这样使用它:
Sizes work = new Sizes();
work.setTitle(vacation_menu[i]);
work.execute(tempLink);
如果只想创建一个警报对话框,则不需要AsyncTask。。
只需将代码getSelectedItem添加到你的onListItemClick中,然后从中创建一个警报。为什么你要在你的onItemClick中的vacation\u菜单上循环?position
包含单击项的索引。我想他的意思是异步任务运行(某物…)当对话结束时,他展示了一段警觉的对话。这就是我需要的例子。非常感谢。)
String title;
public void setTitle(String title) {
this.title = title;
}
protected void onPostExecute(Float result) {
AlertDialog.Builder alertbox = new AlertDialog.Builder(Vacation.this);
alertbox.setMessage(title);
// ...
}
Sizes work = new Sizes();
work.setTitle(vacation_menu[i]);
work.execute(tempLink);