如何动态识别表行id

时间:2012-05-17 11:34:48

标签: android dynamic

我必须找出表格行ID。为此,我正在编写代码

match1[i].setTextSize(12);
            match1[i].setPadding(10,0,0,0);
            tr.addView(match1[i]);
            Log.e("TAG", "ID: "+match1[i].getId());
            match1[i].setOnClickListener(new OnClickListener() {       
                public void onClick(View arg0) {

                    Toast.makeText(SAXParserActivity.this, ""+tr.getId(),
                            Toast.LENGTH_SHORT).show();
                    Log.e("TAG", " clicked ID: "+tr.getId());
                }
            });
     t1.addView(tr, tableRowParams);    

其中match1是文本视图。一切正常,但问题是点击表格行。对于每一行,我得到-1 id,但在点击之前,id正确。请说明错误在哪里,如何在解析后随机显示数据?

2 个答案:

答案 0 :(得分:1)

试试这个代码段:

final View row=contact_table.getChildAt(i);
row.setOnClickListener(new OnClickListener(){
   public void onClick(View v){
    row_id=contact_table.indexOfChild(row);
   }
});

其中contact_table是您的TableLayout对象

答案 1 :(得分:0)

由于Cursor始终指向第1行之前,这意味着-1。你应该使用“moveToFirst()”来到第一行

eg: 

   for(cursor.moveToFirst() ; !cursor.isAfterLast(); cursor.moveToNext()){

            // Do whatever u want with the data obtained
}