ListView是能响应,但是我知道的只能全部响应,不能单独的响应某一个,我也想知道单独响应某一个的方法。

解决方案 »

  1.   


    mList.setOnItemClickListener(new OnItemClickListener()
    {
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    long arg3)
    {

    }
    });
    简单地为你的ListVIew绑定一个listener不行吗?
      

  2.   

    关于你代码里的这两行代码:
    Listview listview = (listview)parent;//这句根本不需要,绑定到你的ListView就好HashMap<String, String> map=(HashMap<String,String>)listview.getItemAtPosition(position);//这里取出来的不是一个Map//你想得到当前被click的item里的item_name吧?
    直接在view里取到好了
    TextView tv = view.findViewById(你item_name的Id);
      

  3.   

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

    //获取你的listView的addapter
    SimpleAdapter sim = (SimpleAdapter) listView.getAdapter();
    for (int k = 0; k < sim.getCount(); k++) {
    //每一个item
    HashMap<String, Object> map = (HashMap<String, Object>) sim
    .getItem(k);
    //你想要得到的值
    String value = map.get("key") ;

    } }
      

  4.   

    有点需求不太明白。
    楼主想要给listview的item加监听的话,还是想给item内的textview加监听。
    若给item加监听,那考虑的应该是position若想给textview加监听,那直接的适配器的getview绘制textview的时候给textview加监听就好了。
    (这时候需要考虑别让item和textview之间的父子关系对监听的影响)
    如果主想即是对item进行监听,也想取出item内textview显示的内容,那楼主可以在适配器中追加方法,
    并且在适配器中用list等数据结构保存不同position下的textview信息。在item的监听事件内,
    调用该方法并将position传入,来取得相应数据。listview不建议直接对view进行操作,思路没错,但view数据结构较大,对内存及速度都是浪费。
    建议是能对小数据操作的就对小数据操作,避免浪费
      

  5.   

    不是,我是要根据跳转到另外一个activity
      

  6.   

    //@Override
    public void onItemClick(AdapterView<?> parent, View view, int position,
    long id) {
    //listview1列表item响应时间
    SetingCornerListView listview = (SetingCornerListView)parent;
    HashMap<String, String> map = (HashMap<String, String>)listview.getItemAtPosition(position);
     
    String item = map.get("item_name");
    //Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show();

    Intent intent = new Intent();
    intent.setClass(InfoSetingActivity.this, PersonalInfoActivity.class);

    //switch(map.get("item_name")){
    //case "Personal Info":
    //break;
    //}
    switch(position){
    case 0:
    Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show();
    Intent item_intent = new Intent();
    intent.setClass(InfoSetingActivity.this, PersonalInfoActivity.class);
    InfoSetingActivity.this.startActivity(item_intent);
    break;
    case 1:
    Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show();
    break;
    case 2:
    Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show();
    break;
    case 3:
    Toast.makeText(InfoSetingActivity.this, item, Toast.LENGTH_LONG).show();
    break;
    default:
    break;
    }
    }
    }
    现在写成这样,语法没有错误,但是运行的时候,跳转到另外一个Activity的时候,就出错了,自动关闭,在AndroidMainfest也加入了改activity, 为什么还出错?我的AndroidMainfest是这样的<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="lin.LANCom.activity"
        android:versionCode="1"
        android:versionName="1.0" >    <uses-sdk android:minSdkVersion="8" />    <application
            android:icon="@drawable/icon"
            android:label="@string/app_name" >
            <activity
                android:name=".MainListActivity"
                android:label="@string/app_name" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity 
                android:name="lin.LANCon.set.activity.InfoSetingActivity"/>
            <activity 
                android:name="lin.LANCon.about.activity.AboutActivity"/>
            <activity
                android:name="lin.LANCon.set.activity.PersonalInfoActivity"/>
        </application></manifest>代码结构如图
      

  7.   

    9楼代码switch上面的都没用,全部删掉
      

  8.   

    我的listvivw怎么出现点击两次的情况
      

  9.   

    楼主竟然想到了用switch()来判断 string类型,让我情何以堪呢,根据position进行判断跳转就可以。