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はテキストビューです。すべて正常に動作していますが、問題はテーブルの行をクリックすることです。各行に対して-1idを取得していますが、クリックする前に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 に答える