xmlの属性からIDからビューを取得したいとします。私はgetParent()
で試しましたが、返品はnullです。カスタムビュークラスの属性からIDでビューを取得
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ntwldg="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:background="@drawable/background_settings"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/revealView"
android:gravity="center"
android:text="TEST"
android:background="@android:color/darker_gray"
android:visibility="invisible"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<com.dot.networkloading.NetworkLoading
android:id="@+id/network_loading"
ntwldg:text="Youtube"
ntwldg:image="@drawable/ic_youtube"
ntwldg:imageBackground="@drawable/ic_youtube"
ntwldg:revealView="@id/revealView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>
attribute
revealView
XMLは、上記View
を参照しています。
コード - NetworkLoading(INIT())
title = (TextView) findViewById(R.id.title);
image = (ImageView) findViewById(R.id.image);
imageBackground = (ImageView) findViewById(R.id.imageBackground);
finishView = findViewById(R.id.revealView);
String text = attributes.getString(R.styleable.network_loading_text);
imageId = attributes.getResourceId(R.styleable.network_loading_image, 0);
imageBackgroundId = attributes.getResourceId(R.styleable.network_loading_imageBackground, 0);
finishView = ((View) getParent()).findViewById(attributes.getResourceId(R.styleable.network_loading_revealView, R.id.revealView));
あなたが何を求めているのかは、はっきりしていません。 'NetworkLoading''の' View'への参照を取得しようとしていて、 'findViewById(R.id.revealView)'がその 'TextView'を正常に返すのであれば、' findViewById(R.id.network_loading) 'はあなたに 'NetworkLoading''' View'を与えてください。 –
@MikeM。このIDをxmlから渡してNetworkLoadingからR.id.revealViewを取得したいとします。 –
ああ、今、私はつまずいた。そのコードはどこにありますか? 'NetworkLoading'のコンストラクタに入っていますか? –