0

我必须找出表格行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 是正确的。请提出错误在哪里,解析后如何随机显示数据?

4

2 回答 2

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 对象

于 2012-05-17T11:48:45.663 回答
0

由于光标总是指向第一行之前,这意味着 -1。您应该使用“moveToFirst()”到达第一行

eg: 

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

            // Do whatever u want with the data obtained
}
于 2012-05-17T11:53:21.547 回答