【发布时间】:2020-01-12 10:41:44
【问题描述】:
我正在尝试以这种方式从button2 访问在button1 中创建的自定义View 的对象:
final Button button1 = (Button) findViewById(R.id.generate);
button1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ObjectView object = new ObjectView(getApplicationContext());
object.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
object.setId(componentsIds);
relativeLayout.addView(object);
}
});
final Button button2 = (Button) findViewById(R.id.useComponent);
button2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ObjectView object = findViewById(componentsIds);
object.bringToFront();
}
});
但我收到此错误:
java.lang.ClassCastException: android.widget.Button 不能被强制转换为 启动.project.views.ObjectView
【问题讨论】:
-
你的xml布局中有customview吗?
-
@VaikundamRaghul 不,所有属性都由代码分配,它们是从(按钮单击)等事件动态生成的
-
请添加您的
ObjectView。是从Button延伸出来的吗? -
@Md.Asaduzzaman ObjectView 从 View 扩展而来。它是画布上的位图形状>
-
尝试在
onClick内使用relativeLayout.findViewById(componentsIds);
标签: java android android-custom-view custom-view