吐司不是从列表中选择的项目生成文本 [英] Toast not generating text from selected item from list

查看:81
本文介绍了吐司不是从列表中选择的项目生成文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我做的机器人与列表查看一个简单的应用程序,在此我想打的时候选择一个项目,我已经试过如下,但它不工作敬酒。

我的code是如下:

main.java

 包com.example.listview;

进口的java.util.ArrayList;
进口的java.util.HashMap;
进口的java.util.List;

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

公共类ListViewActivity延伸活动{


    字符串项目[] = {汽车,鸟,自行车,花};
    字符串类[] = {体育,鸟,体育,自然};
    INT图标[] = {R.drawable.car,R.drawable.bird,R.drawable.bike,R.drawable.flower};

    @覆盖
    公共无效的onCreate(包savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.activity_list_view);
        名单< HashMap的<字符串,字符串>> ALIST =新的ArrayList< HashMap的<字符串,字符串>>();
        的for(int i = 0;我4;;我++)
        {
            HashMap的<字符串,字符串> HM =新的HashMap<字符串,字符串>();
            hm.put(TXT,项目:+项目[I]);
            hm.put(类,类别+类别[I]);
            hm.put(图标,Integer.toString(图标[i]));
            aList.add(HM);
        }
        的String []从= {图标,TXT,类别};
        INT []到= {R.id.image,R.id.text,R.id.category};
        SimpleAdapter适配器=新SimpleAdapter(getBaseContext(),ALIST,R.layout.list,从,到);
        最终的ListView LV =(ListView控件)findViewById(R.id.listView);
        lv.setAdapter(适配器);
        lv.setOnItemClickListener(新OnItemClickListener(){

            公共无效onItemClick(适配器视图<>为arg0,查看ARG1,INT位置,
                    长ARG3){
                // TODO自动生成方法存根
                串了selectedValue =(字符串)(lv.getItemAtPosition(位置));
                Toast.makeText(getApplicationContext(),selectedValue,则Toast.LENGTH_LONG).show();
            }
    });
    }


}
 

请帮me..thanx提前

解决方案

 的HashMap<字符串,字符串>了selectedValue =(HashMap的<字符串,字符串>)(lv.getItemAtPosition(位置));
ArrayList的<字符串>名单=新的ArrayList<字符串>(selectedValue.keySet());
Toast.makeText(getApplicationContext(),selectedValue.get(TXT),Toast.LENGTH_LONG).show();
 

这HashMap具有了按键,present在列表。这份名单实际上是数组,你给。只要给相应的按键显示相应的文字。

其工作。 :)

I've made a simple app in android with list View,In that i want to make a toast when select an item,i have tried as below but its not working..

my code is as below:

main.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();
            }
    });
    }


}

please help me..thanx in advance

解决方案

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();

That hashmap has got keys which are present in that list. That list is actually the from array which you have given. Just give the corresponding key to display the corresponding text.

Its working. :)

这篇关于吐司不是从列表中选择的项目生成文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆