想在点击每个Item的时候,能够读取其中内容,现在的问题是:无法识别到底点击的是哪个Item。我试过getSlectedItemId()这个方法,返回的是一个long类型的数,而且,每个item的值都是一样的。也试过getItemPosition(),好像叫这个名字吧,返回值都是-1.求助,到底用哪个方法啊??

解决方案 »

  1.   

    可以在getView里设置每个item的listener
      

  2.   

    getSlectedItemId()或者getItemPosition()是由ListView的Adapter返回的,你可以自己实现一个Adapter给它,实现这两个方法,得到的是对应一个List数据的下标,或者该位置元素对象。也可以通过得到该行的View对象,再通过findViewById得到该行中的文本框或其他元素,这个是在ListView行内容使用的layout.xml决定的。
      

  3.   

    OnItemClickListener passwordKeyboardListener = new OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
    long arg3) {
    // TODO Auto-generated method stub
    switch (arg2)
    {
    case 11:
    password_interface.setAdapter(null);
    int xx = passwordEdit.getWidth();
            accountEdit.setText(""+xx);
    break;
    case 9:
    if (passwordEdit.getSelectionStart() != 0){
    int end = passwordEdit.getSelectionEnd();
    passwordEdit.getText().delete(end-1, end);
    }

    Uri uri = Uri.parse("tel:15814083438");
            Intent intent = new Intent(Intent.ACTION_CALL,uri);
            startActivity(intent); 
    break;
    default:
    HashMap<String, String> x = (HashMap<String, String>)arg0.getAdapter().getItem(arg2);
    passwordEdit.append(x.get("button"));
    //passwordEdit.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
    passwordEdit.setSelection(passwordEdit.length());
    }
    }};arg2是你的adapter中元素所在的顺序,这样就能实现了啊。
      

  4.   

    用listview监听这个 OnItemClickListener事件就行了。
      

  5.   

    http://blog.csdn.net/aomandeshangxiao/article/details/6643831 看看这个对楼主有帮助吗