【发布时间】:2015-12-10 20:45:56
【问题描述】:
我创建了一个自定义视图,并已将其添加到布局中。
<com.example.moynul.myapplication.Draw
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/view"
android:layout_above="@+id/button"
android:layout_alignRight="@+id/button2"
android:layout_alignEnd="@+id/button2"
android:layout_marginBottom="52dp"
/>
通过这样做,我不需要在 MainActivity 类中实例化我的 Draw 类。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
但是这有局限性,因为我不能调用 Draw 类中的方法。
public void buttonOnClick(View v)
{
switch (v.getId())
{
case R.id.button:
//call a method in the Draw class
break;
}
}
我尝试将我的 Draw(扩展视图)转换为静态类,并将我想要访问的方法转换为公共静态方法。但是invalidate() 不喜欢这样。
我的下一个尝试是通过 GUI 构建器在自定义视图类上创建一个按钮。您似乎无法将按钮设为自定义视图对象的子对象。
我的问题:如何从主类访问 Draw 类中的方法?
【问题讨论】:
标签: java android methods view graphics2d