2011-01-19 9 views
5

Próbuję zaimplementować jeden z rozwiązań znalezionych here.Jak poprawnie pisać i używać podklasy View w systemie Android?

Mój problem polega na tym, że nie jestem pewien, czy poprawnie implementuję i używam mojej podklasy. ja instacji do WebView tutaj:

public class myWebView extends WebView{ 

    public myWebView(Context context) { 
    super(context); 
    // TODO Auto-generated constructor stub 
} 

    @Override 
protected void onSizeChanged(int w, int h, int ow, int oh) { 
    // TODO Auto-generated method stub 

     scrollTo(xScroll - (widthScroll/2), yScroll - (heightScroll/2)); 


    super.onSizeChanged(w, h, ow, oh); 
} 

    }} 

To powinno być prywatne, ale zapominają, że do teraz. Mam kod wewnątrz jednej z moich działań, która ma wewnętrzny widok w hierarchii widoku. Poza metodą onCreate tego działania.

Wewnątrz metody onCreate, mam: myWebView mapImage = (myWebView) findViewById(R.id.mapcroppic);

To daje mi ClassCastException dla tego połączenia. (Czy plik układu xml musi używać <myWebView>? Czy to możliwe?) W jaki sposób mogę użyć tego we właściwy sposób?

Odpowiedz

8

(Czy plik xml układ trzeba użyć <myWebView>? Czy nie?) Jak używać ten właściwy sposób?

Tak:

<your.package.name.myWebView 
    android:layout_with="blah"/> 

Dobrze, że działa, jeśli myWebView jest publiczną klasy. Jeśli jest to wewnętrzna:

<view class="your.package.name.myWebView.YourActivity$myWebView" /> 
+0

Dzięki za aktualizację, chciałem tylko poprosić o dodatkowe informacje. – joepetrakovich

+0

Otrzymuję ClassNotFoundException. Jesteś pewien, że to właściwa kolej rzeczy? Na przykład moja aplikacja nazywa się SlingShot. Pakietem jest com.joe.sling, aktywność, która przechowuje podklasę myWebView, to ShootActivity, więc powinienem mieć joepetrakovich

+0

Wklej to, co zrobiłeś w pytaniu .. Aby zobaczyć to jasne. – Cristian