web-dev-qa-db-ja.com

Androidビューのタイプを取得

これどうやってするの?

何か:

final View view=FLall.getChildAt(i);

if (view.getType()==ImageView) {
...
}
51
lacas

何らかの奇妙な理由でAsahiの提案(タグを使用)を使用できない場合、私の提案は次のようになります。

if (view instanceof ImageView) {
    ImageView imageView = (ImageView) view;
    // do what you want with imageView
}
else if (view instanceof TextView) {
    TextView textView = (TextView) view;
    // do what you want with textView
}
else if ...
134
Felix

私は次を試してみましたが、うまくいきました:

View view=FLall.getChildAt(i);
Log.i("ViewName", view.getClass().getName());
16
realjin

この質問をチェックする他の人にとっては、instanceofが機能しない場合があります(理由はわかりません!)、たとえば、ビュータイプがImageViewまたはImageButton(私はこの状況をテストした)かどうかを確認したい場合、あなたはこの方法を使用してスキャンします:

//v is your View
    if (v.getClass().getName().equalsIgnoreCase("Android.widget.ImageView")) {
        Log.e("imgview", v.toString());
        imgview = (ImageView) v;
    } else if (v.getClass().getName().equalsIgnoreCase("Android.widget.ImageButton")) {
        Log.e("imgbtn", v.toString());
        imgbtn = (ImageButton) v; 
    }
8
Arash

そのためにタグを使用できます: http://developer.Android.com/reference/Android/view/View.html でset/getTagメソッドを参照してください

6
Asahi