6


0

ビューウィジェットのタイプを確認する方法は?

それを機能させる方法:

 if(findViewById(ResIdWithUnkownType) instanceof Bitmap)
 {
       Bitmap bitmap = (Bitmap) findViewById(ResIdWithUnkownType);
 } else if(findViewById(ResIdWithUnkownType) instanceof ImageView)
 {
       ImageView = (ImageView) findViewById(ResIdWithUnkownType);
 }

2 回答


6


2番目のブロックは問題なく機能します。 問題は最初のものです: findViewById`は View`オブジェクトを*常に*返し、 Bitmap`は View`ではないため、最初の `if`ステートメントは実行されません。


3


これは答えではありませんが、この質問をチェックする他の人にとっては、たとえば、ビュータイプが 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;
    }