3

for ループに2 つ追加TableRowsしました。TableLayoutすべての最初TableRowに、6 個TextViewsと 1個とImageView1 個のトグル ボタンがあります。& トグルボタンに を追加しましたOnClickListenerfirst row私の質問は、のonclickメソッドにありFirst Rowます。特定の選択された行の行 ID を取得するにはどうすればよいですか?

誰かが私を助けることができますか?

助けてください.....

選択した特定の行の行IDを取得したい......

誰か返信してください....

4

2 に答える 2

4

次のようにView階層をナビゲートします。ImageView OnCLickListener

imageView.setOnClickListener(new OnClickListener() {

     public void onCLick(View v) {
          // v represents the view that was clicked(the ImageView)
          // if the ImageView is added directly to the TableRow then you could simply do
          TableRow tr = (TableRow) v.getParent(); // if the ImageView isn't a direct child of the TableRow then walk through all the parent with getParent().
          // do stuff 
     }

});

編集 :

あなたのコードは役に立たないので、あなたがしていることを見て、アンドロイドについて学ぶためにもう少し簡単なことから始めることをお勧めします. また、openedRow1tabLayout.addView(openedRow1, n_D);にタグを追加せず(これがやりたい場合)、親の特定の位置に配置するだけです (親の最初の子になるように)。 ViewView0

TextView親がクリックされたときに、2番目( tv_vin_val ?!?!)からテキストを取得しようとしていると思います。やりたいことがこれだけなら、次のようにしてみてください。

 public void onClick(View v) {
        // you set the listener on the TableRow so v is the TableRow that was clicked 
        TableRow lTableRow = ((TableRow) v);                                
        // to get the TextView use getChildAt or findViewById
        TextView lTextView = (TextView)lTableRow.getChildAt(1);
        //get the text from the TextView  
        vinNum = lTextView.getText().toString();
        // the tag
        int theTag = (Integer) v.getTag();          
        Intent intent = new Intent(DeliveryInspectionActivity.this, ExceptionsActivity.class);
        //intent.putExtra("row id value", theTag);
        startActivityForResult(intent, 0);
 }
于 2012-06-01T05:01:24.927 に答える
1

そのための正しい行番号を取得する方法はわかりませんが、代わりに のgetParent()方法を使用して、画像を含むViewへの参照を取得し、TableRowそこから直接作業することをお勧めします。このようなもの:

imageView.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        TableRow row = (TableRow)v.getParent();
        //handle your stuff here
    }
});
于 2012-06-01T05:04:14.593 に答える