2 znl 12 znl_12 于 2013.04.25 14:09 提问

如何获得列表视图的位置

现在 Listview 的 onListItemClick()方法中有问题,不能获取 list 的位置。这是我使用的代码,请大家帮忙。
coverletterselection.xml

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"> 
    <ImageView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/bgg"     />
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:orientation="vertical"          
        android:layout_height="wrap_content">
        <ImageView
            android:layout_width="fill_parent"              
            android:background="@drawable/blackstrip"
            android:layout_height="wrap_content" />             
        <ImageView
            android:layout_width="fill_parent"  
            android:id="@+id/coverletterbgView"
            android:background="@drawable/imgselectcoverltrresume"
            android:layout_height="wrap_content" />
        <ListView 
            android:id="@+id/list" 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"    />          
    </LinearLayout>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"      
        android:layout_height="wrap_content">
        <ImageButton
            android:layout_width="wrap_content"     
            android:layout_marginLeft="5sp"     
            android:background="@drawable/submission"
            android:layout_height="wrap_content" /> 
        <ImageButton
            android:layout_width="wrap_content"             
            android:background="@drawable/iconaddplus"
            android:layout_height="wrap_content" 
            android:layout_alignParentRight="true" 
            android:layout_marginRight="10sp"/>         
    </RelativeLayout>
</RelativeLayout>

Java 文件

 public class MainActivity extends ListActivity implements OnItemClickListener
{       
    int ht,wt;
ListView list;
    DataHelperCoverLetter dbcl;
    ArrayList<String> coverLetterTitle = new ArrayList<String>();
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.coverletterselection);      
        dbcl = new DataHelperCoverLetter(this);
        DisplayMetrics displaymetrics = new DisplayMetrics();       
        getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);      
        ht = displaymetrics.heightPixels;      
        wt = displaymetrics.widthPixels;
        bg = (ImageView)findViewById(R.id.coverletterbgView);
        bg.setLayoutParams(new LinearLayout.LayoutParams(wt, ht/3));    
        coverLetterTitle = dbcl.fetchCoverLetter();
            //get the listView from your layout and define the listener on it
            list = (ListView)findViewById(R.id.list);
            list.setOnItemClickListener(this);
        addCoverLetterBtn = (ImageButton)findViewById(R.id.addCoverLetter);
        addCoverLetterBtn.setOnClickListener(this);
        setListAdapter(new CoverLetterAdaptor(this,ht,wt,coverLetterTitle));        
    }
    @Override
    public void onListItemClick(ListView parent, View view, int position, long id)
    {     
        Log.i("OnClick", "position = "+position);
    }   
} 
public class CoverLetterAdaptor extends BaseAdapter
{
    private LayoutInflater mInflater;   
    ArrayList<String> coverLetterItems;
    Context context;    
    int ht,wt;  
        public CoverLetterAdaptor(Context context,int ht,int wt,ArrayList<String> coverLetterItems)
    {
        this.context = context;
        this.coverLetterItems = new ArrayList<String>();
        this.coverLetterItems = coverLetterItems ;          
        this.ht = ht;
        this.wt = wt;
        mInflater = LayoutInflater.from(context);   
    }
    public int getCount() {
        return coverLetterItems.size();
    }
    public Object getItem(int position) {
        return position;
    }
    public long getItemId(int position) {
        return position;
    }
     public View getView(int position, View convertView, ViewGroup parent)
    {       
        ViewHolder holder;
        convertView = mInflater.inflate(R.layout.coverletteradaptor, null);     
        holder = new ViewHolder();
        holder.coverLetterTxt = (TextView) convertView.findViewById(R.id.coverLetterAdaptorTxt);
        holder.bgImageCCAdaptor = (ImageView)convertView.findViewById(R.id.bgimageCoverLetter);
        holder.bgImageCCAdaptor.setLayoutParams(new RelativeLayout.LayoutParams(wt, ht/7));     
        convertView.setTag(holder);
        holder = (ViewHolder) convertView.getTag();
        holder.coverLetterTxt.setText(coverLetterItems.get(position));                          
        return convertView;
    }
    static class ViewHolder 
    {
        TextView coverLetterTxt;        
        ImageView bgImageCCAdaptor;
    }
}

2个回答

CSDN_Ask
CSDN_Ask   2013.04.25 18:26
已采纳

从你的代码看来,你忘记创建 list.setOnItemClickListener(this);

Object obj = parent.getItemAtPosition(position);
xiaoyan_12
xiaoyan_12   2013.04.26 10:31

我觉得你忘记设置 setOnItemClickListener

ListView lst = (ListView) findViewById(R.id.list);
        lst.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                    long arg3) {
                // TODO Auto-generated method stub
                Log.i("OnClick", "position = " + position);
            }
        });
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
VC MFC列表视图(CListCtrl)控件
列表视图控件 图标风格 CListCtrl类里要了解的函数 SetImageList为列表控件关联一个图像列表 InsertItem插入一项 GetSelectionMark获取选中项的索引 GetItemText根据项索引获取项文本内容 首先往工程里引入七个图标,接着在对话框里添加一个列表视图控件,然后为控件关联一个变量CListCtrl,再往对话框类添加一个变量CImageLis
列表视图控件List Control
列表视图控件简介        列表视图控件List Control同样比较常见,它能够把任何字符串内容以列表的方式显示出来,这种显示方式的特点是整洁、直观,在实际应用中能为用户带来方便。        列表视图控件是对前面讲到的列表框控件List Box的改进和延伸。列表视图控件的列表项一般有图标(Icon)和标签(Label)两部分。图标是对列表项的图形描述,标签是文字描述。当然列
如何使用列表视图控件
如何使用列表视图控
[MFC]CListView列表视图
1. 列表视图简介:     1) 最常见的列表视图案例就是Windows的资源管理器的右侧视图,就是使用列表视图来展示当前路径下的文件集合的;     2) 列表视图有两大元素,一是文本,而是图形,和树形视图一样,但是这两种元素的展示形式会根据列表视图的样式发生改变;     3) Windows支持的4中列表视图的样式:          i. 小图标:          i
Getting the number of columns in report view获得列表视图的列
Getting the number of columns in report view获得列表视图的列数(2KB)
列表视图控件(一)
转载地址:http://www.jizhuomi.com/software/195.html  列表视图控件简介        列表视图控件List Control同样比较常见,它能够把任何字符串内容以列表的方式显示出来,这种显示方式的特点是整洁、直观,在实际应用中能为用户带来方便。        列表视图控件是对前面讲到的列表框控件List Box的改进和延伸。列表视图控件
MFC 列表视图的使用
首先看一下列表视图的四种类型,类型之间的转换可以在属性中的VIEW   Icon大图标风格:列表项的图标通常为32×32像素,在图标的下面显示标签。   Small Icon小图标风格:列表项的图标通常为16×16像素,在图标的右面显示标签。   List列表风格:与小图标风格类似,图标和文字的对齐方式不同。     Report报表风格:列表视图控件可以包含一个列表头来描述各列的含义。每
高级控件之列表视图(ListView)
ListView是Android中最重要的一种视图,基本上是个软件基本都会使用ListView,它以垂直列 表形式列出需要显示的列表,只有通过Adapter才可以把列表中的数据映射到ListView中。列表的显示需要三个元素:1.ListVeiw 用来展示列表的View。2.适配器用来把数据映射到ListView上的中介。3.数据具体的将被映射的字符串,图片。
MFC之列表视图控件List Control
列表视图控件的创建        MFC同样为列表视图控件的操作提供了CListCtrl类。        如果我们不想在对话框模板中直接拖入List Control来使用列表视图控件,而是希望动态创建它,则要用到CListCtrl类的成员函数Create函数,原型如下: virtual BOOL Create(    DWORD dwStyle,    const RECT& rect
android-用户界面[列表视图] 四
ListView 是一个显示一列可滚动项目的视图组。 系统使用 Adapter 自动将列表项目插入列表,适配器从来源(例如数组或数据库查询)提取内容,并将每个项目结果转换为视图放置到列表中。 有关如何使用适配器动态插入视图的介绍,请阅读使用适配器构建布局。 使用加载器 使用 CursorLoader 是以异步任务形式查询 Cursor 的标准方式,可避免查询阻塞应用的主线