gpt4 book ai didi

android - 为什么要将扩展的 ImageView 转换为 ImageView?

转载 作者:行者123 更新时间:2023-11-29 16:23:04 27 4
gpt4 key购买 nike

我在名为 DialButton2 的类中扩展了 ImageView 类(不要担心类的名称,它无关紧要)。 DialButton2 类所做的只是显示位于可绘制文件夹中的任 Intent 像。

package com.com.com;

import android.content.Context;
import android.widget.ImageView;
import android.util.AttributeSet;

public class DialButton2 extends ImageView{

public DialButton2(Context context) {
super(context);
this.setImageResource(R.drawable.dialpad);
}

public DialButton2(Context context, AttributeSet attrs){
super(context, attrs);
this.setImageResource(R.drawable.dialpad);
}

}

在我的应用程序主要 Activity 的 XML 文件中,我指定应显示一个 DialButton2 对象。我给它的 ID 是“button1”。

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1"
>
<TableRow
android:layout_weight="1">
<DialButton
android:id="@+id/button1"
android:src="@drawable/dialpad"
android:layout_weight="1"
/>

不要担心 XML 文件的其余部分,它们无关紧要。

我的问题是,当我尝试在代码中实例化对按钮的引用时,eclipse 告诉我必须将其转换为 ImageView。这是为什么?

package com.com.com;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;

public class Android3 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.maintable);

/*
* The instantiating below gives an error saying I have to cast to ImageView.
*/

DialButton2 button1 = findViewById(R.id.button1);
}
}

最佳答案

你必须转换到 DialButton2

    DialButton2 button1 = (DialButton2) findViewById(R.id.button1);

findViewById() 返回一个 View ,您必须先转换它才能将其用作 DialButton2。

关于android - 为什么要将扩展的 ImageView 转换为 ImageView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6322657/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com