Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行时的Android视图类型_Java_Android - Fatal编程技术网

Java 运行时的Android视图类型

Java 运行时的Android视图类型,java,android,Java,Android,我正在创建一个应用程序,它使用GridView显示一组项目。这些项目的定义如下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layou

我正在创建一个应用程序,它使用GridView显示一组项目。这些项目的定义如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <com.example.myapp.customviews.Tile
        android:layout_width="wrap_content"
        android:layout_weight="1"
        android:scaleType="fitCenter"
        android:layout_height="match_parent"
        android:id="@+id/tile" />
</LinearLayout>
LinearLayout tileLayout = (LinearLayout) gridView.getChildAt(position);
if (EmptyTile.class.isInstance(tileLayout.findViewById(R.id.tile))) {
    Log.d("myappDebug", "Correct instance!");
}
我已经尝试使用
instanceof
tillelayout.findViewById(position.getClass()==EmptyTile.class
进行检查,但这些方法也不起作用。在运行时,我的视图只是一个平铺视图,而不是清空视图


如何检查我的视图是否实际上是EmptyTile类的实例?

instanceof必须工作。但是,在XML中,您将视图定义为com.example.myapp.customviews.Tile类型,那么为什么希望它是一个清空文件呢?
如果在XML中使用EmptyTile(当然是正确的包),instanceof check和其他选项将起作用。

我在XML中使用Tile,因为除了一个实例之外,所有实例都是Tile实例。不必为清空文件使用不同的XML就可以读取实例吗?不,我不这么认为。当您使用具体的视图子类在XML中定义标记时,它将被该类实例化,这就是为什么它是平铺的原因。您可以更好地描述您正在尝试做什么:是动态创建分幅,还是在XML中将所有分幅都定义为某个布局的子级?如果是后一种情况,只需在需要平铺时定义平铺,否则清空。我的平铺是动态创建的,因此我认为唯一的方法是使用两种布局。谢谢如果你动态地创建它们,那么你就创建了平铺或者清空文件,然后instanceof就可以工作了。