我正在使用Android通用圖像加載器。在Java靜態類上找不到的方法
在所有示例代碼中,視圖都是通過XML創建的。我需要通過Java創建我的視圖(不充氣)。我試圖將視圖轉換爲PhotoDisplayView對象,並調用.test()。但.test()無法找到。
public View getView(int position, View convertView, ViewGroup parent)
{
final ViewHolder holder;
View view = convertView;
if (view == null) {
view = new PhotoDisplayView(parent.getContext());
holder = new ViewHolder();
assert view != null;
holder.imageView = (PhotoDisplayView)view.test();//test() CANNOT BE FOUND
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
}
這裏是我的靜態類
static class PhotoDisplayView extends FrameLayout
{
public ImageView imageView;
public ProgressBar progressBar;
public PhotoDisplayView(Context context)
{
super(context);
imageView = new ImageView(context);
progressBar = new ProgressBar(context);
}
public void test()
{
Log.d("TEST","TEST");
}
}
我不明白爲什麼鑄造它作爲一個PhotoDisplayView對象不會給我訪問其功能?我需要一個視圖對象並將其轉換爲它的子類型。爲什麼它找不到方法?
注意:如果我宣佈對象作爲PhotoDisplayView,而不是一個視圖我有訪問方法
這工作,但它似乎是多餘的? – Aggressor
雅我不需要讓方法工作就找到它哈哈。 – Aggressor
@Aggressor起初可能會這樣。但編譯器基本上是這樣做的:1.在'View'對象上調用'test()'。 2.將結果轉換爲「PhotoDisplayView」。因爲'View'沒有'test()'方法,所以它在步驟1中出錯。添加圓括號使其首先投射類,然後運行該方法。 –