私は、現在のアクティビティのすべてのWebView要素をロード時に取得しようとし、出力を取得します。
これは完全に機能しています。Chidレイアウトの子供たちを取得するには?
コード:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.dmp_webview.MainActivity"
android:orientation="vertical">
<WebView
android:id="@+id/simpleWebView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="20dp"
android:scrollbars="none" />
<WebView
android:id="@+id/simpleWebView2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="20dp"
android:scrollbars="none" />
</LinearLayout>
private void forWebviews() {
final ViewGroup viewGroup = (ViewGroup) ((ViewGroup) this
.findViewById(android.R.id.content)).getChildAt(0);
int elementSize = getWenViews(viewGroup).size();
for(int j =0; j< elementSize;j++)
{
WebView getAllWebView = formIsValid(viewGroup).get(j);
String SplitTypeWebView = String.valueOf(getAllWebView);
String getWebValues = getAllWebView.getUrl().toString();
SplitWebViewID(SplitTypeWebView);
}
}
private ArrayList<WebView> getWenViews(ViewGroup viewGroup) {
ArrayList<WebView> webview = new ArrayList<WebView>();
for (int i = 0; i < viewGroup.getChildCount(); i++) {
View v = viewGroup.getChildAt(i);
if (v instanceof WebView) {
webview.add((WebView) v);
}
}
return webview;
}
しかしときに私1以上のLinearLayout(だけではなく、また、他のレイアウトのLinearLayout)WebViewの親のための
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.dmp_webview.MainActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ffffff"
android:orientation="vertical"
android:padding="16dp"
android:id="@+id/RootLayout_1">
<WebView
android:id="@+id/simpleWebView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="20dp"
android:scrollbars="none" />
<WebView
android:id="@+id/simpleWebView2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="20dp"
android:scrollbars="none" />
</LinearLayout>
</LinearLayout>
がその動作していない、このように意味正しく。どうして?子ビューのカウントは返されません。一つのことを明確にする必要がある。
- すべての子レイアウトの子を取得することは可能ですか? (例えば) ROOTレイアウトは - >のLinearLayout(いくつかの他のレイアウト) - >のLinearLayout(他のいくつかのレイアウトが)
を-Views plzは、私は、ルートレイアウトを取得し、反復処理me.Actuallyを導きます。 実行時にすべての子ビューを取得するにはどうすればよいですか?ルートレイアウトや子レイアウトやビューの数は関係ありません。私はすべてを取得する必要があります。
をネストされた 'ViewGroup'でそれらの' WebView'を取得していません。 'getWenViews()'では、子が別の 'ViewGroup' - ' else if(v instanceof ViewGroup){webview.addAll(getWenViews((ViewGroup)v))の場合は 'else'が必要です。 ; } ' –
レイアウト内のすべての' WebView'を取得しようとしていますか、特定の 'ViewGroup'内のすべての' WebView'を取得しようとしていますか? – Titus
@MikeM。はい、私はあなたが正しいです、私は他のviewgroup.iを確認する場合はロジックを追加する必要がありますので、私は試してみてください – Moorthy