gpt4 book ai didi

java - ImageButton 在类中不起作用

转载 作者:行者123 更新时间:2023-12-01 23:40:32 25 4
gpt4 key购买 nike

我正在尝试创建一个测试应用程序,当我按下 ImageButton 时,会出现一条日志消息。简单。

我希望 ImageButton View 能够与类一起使用。

我是这样做的:更新了正确的 builder 名称

public class MainActivity extends Activity {


MyButtonClass btnOk = null;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

btnOk = new ButtonClass(this);
setContentView(R.layout.activity_main);
}
}


class MyButtonClass extends ImageButton{

public MyButtonClass(Context context) {
super(context);

findViewById(R.id.btButton);

OnClickListener oclBtnOk = new OnClickListener() {
@Override
public void onClick(View v) {
// change text of the TextView (tvOut)
Log.e("Log This:","Yay! I am working!");
}
};

setOnClickListener(oclBtnOk);
}



}

我的布局 xml 是:

<?xml version="1.0" encoding="utf-8"?>
<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:orientation="horizontal" >

<ImageButton
android:id="@+id/btButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />

</LinearLayout>

当我运行应用程序时,Log cat 上没有出现任何错误,并且应用程序不会退出,但是当我按下 ImageButton 时,它不会执行任何操作:/

最佳答案

首先,您的 Java 代码将无法编译,因为 MyButtonClass 不是有效的 Java 类。

其次,即使您将构造函数修复为 MyButtonClass,您也会在运行时崩溃,因为您试图通过 查找 MyButtonClass 的子级findViewById(),并且没有子项。

第三,即使它确实编译了,即使您在构造函数中正确实现了逻辑,您也没有在布局资源中引用 MyButtonClass,因此不会使用它。

第四,如果您花时间阅读 Google 和其他经验丰富的 Android 开发人员编写的代码,您会发现很少有人(如果有的话)会以这种方式使用继承。您根本不需要 MyButtonClass,因为您的 Activity 或 fragment 可以(并且应该)设置监听器。换句话说,favor composition over inheritance .

关于java - ImageButton 在类中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18017232/

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