android - Toast 不从列表中的选定项目生成文本

标签 android listview adapter toast

我在 android 中用 ListView 制作了一个简单的应用程序,因为我想在选择一个项目时 toast ,我已经尝试过如下但它不起作用..

我的代码如下:

ma​​in.java

    package com.example.listview;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import android.os.Bundle;
import android.app.Activity;
import android.app.ListActivity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
import android.support.v4.app.NavUtils;

public class ListViewActivity extends Activity {


    String items[]={"Car","Bird","Bike","Flower"};
    String category[]={"Sports","Birds","Sports","Nature"};
    int icons[]={R.drawable.car,R.drawable.bird,R.drawable.bike,R.drawable.flower};

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_list_view);
        List <HashMap<String,String>> aList=new ArrayList<HashMap<String,String>>();
        for(int i=0;i<4;i++)
        {
            HashMap<String,String> hm=new HashMap<String, String>();
            hm.put("txt","Item : "+items[i]);
            hm.put("category","Category : "+category[i]);
            hm.put("icon",Integer.toString(icons[i]));
            aList.add(hm);
        }
        String []from={"icon","txt","category"};
        int []to={R.id.image,R.id.text,R.id.category};
        SimpleAdapter adapter=new SimpleAdapter(getBaseContext(),aList,R.layout.list,from,to);
        final ListView lv=(ListView)findViewById(R.id.listView);
        lv.setAdapter(adapter);
        lv.setOnItemClickListener(new OnItemClickListener() {

            public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                    long arg3) {
                // TODO Auto-generated method stub
                String selectedValue =(String) (lv.getItemAtPosition(position));
                Toast.makeText(getApplicationContext(),selectedValue , Toast.LENGTH_LONG).show();
            }
    });
    }


}

请帮助我..提前谢谢

最佳答案

HashMap<String, String> selectedValue = (HashMap<String, String>) (lv.getItemAtPosition(position));         
ArrayList<String> list = new ArrayList<String>(selectedValue.keySet());             
Toast.makeText(getApplicationContext(), selectedValue.get("txt"), Toast.LENGTH_LONG).show();

那个 hashmap 有那个 list 中的键。该列表实际上是您提供的 from 数组。只需给出相应的按键,即可显示相应的文字。

它的工作。 :)

关于android - Toast 不从列表中的选定项目生成文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17038157/

相关文章:

java - Listview 和 OnItemClickListener(蓝牙设备)

android - 如何从另一个 Activity 调用 ListView 适配器进行刷新 - notifyDataSetChanged()

设置 HashTable 和 HashSet 的键之间的差异

java - 用于填充多个部分的 Android GridView 适配器

android - 自动调整两个 TextView 的大小以显示尽可能多的内容

android - 如何在android应用程序中使用现有的.so文件

android - Material Design EditText 添加了错误的填充

android - 应用程序进入后台时取消注册广播接收器

Java android 相对布局在滑动监听器上设置不适用于内部的 listView

android-recyclerview - Kotlin 适配器中 ViewHolder 中的 SetOnClickListener