从MainActivity.Java调用自定义视图中的方法
我已经创建了一个自定义视图,并将其添加到布局中从MainActivity.Java调用自定义视图中的方法,java,android,methods,view,graphics2d,Java,Android,Methods,View,Graphics2d,我已经创建了一个自定义视图,并将其添加到布局中 <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="@+
<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"
/>
但是,这有局限性,因为我无法在Draw类中调用方法
public void buttonOnClick(View v)
{
switch (v.getId())
{
case R.id.button:
//call a method in the Draw class
break;
}
}
我已经尝试将我的绘图(扩展视图)转换为静态类,并将我想要访问的方法转换为公共静态方法。但是invalidate()
不喜欢这样
我的下一个尝试是通过GUI生成器在自定义视图类上创建一个按钮。似乎无法使按钮成为自定义视图对象的子对象
我的问题:如何从主类访问Draw类中的方法 在
main活动中引用Draw
类创建全局变量
Draw myDraw;
接下来,在您的onCreate
myDraw = (Draw) findViewById(R.id.view);
最后,在您的按钮中调用它
case R.id.button:
myDraw.method();
break;
或如果您只想引用按钮中的变量,单击
即可
case R.id.button:
((Draw) findViewById(R.id.view)).method();
break;
Draw mDraw = (Draw) findViewById(R.id.view);
mDraw.myMethod();
要引用Draw
类,请在main活动中创建全局变量
Draw myDraw;
接下来,在您的onCreate
myDraw = (Draw) findViewById(R.id.view);
最后,在您的按钮中调用它
case R.id.button:
myDraw.method();
break;
或如果您只想引用按钮中的变量,单击
即可
case R.id.button:
((Draw) findViewById(R.id.view)).method();
break;
Draw mDraw = (Draw) findViewById(R.id.view);
mDraw.myMethod();
可以像这样实例化Draw类
case R.id.button:
((Draw) findViewById(R.id.view)).method();
break;
Draw mDraw = (Draw) findViewById(R.id.view);
mDraw.myMethod();
可以像这样实例化Draw类
case R.id.button:
((Draw) findViewById(R.id.view)).method();
break;
Draw mDraw = (Draw) findViewById(R.id.view);
mDraw.myMethod();
myObject=(Object)findViewById(R.id.objectDrawnOnGUI);||这样就可以引用设备屏幕上的任何内容了?所以如果我有一个滑块,那么slider slider=(slider)findviewbyd(R.id.mySlider)?代码运行良好。啊,我明白了。游戏引擎的工作原理非常简单,通过代码引用游戏对象。非常好的信息。myObject=(Object)findViewById(R.id.objectDrawnOnGUI);|这样就可以引用设备屏幕上的任何内容了?所以如果我有一个滑块,那么slider slider=(slider)findviewbyd(R.id.mySlider)?代码运行良好。啊,我明白了。游戏引擎的工作原理非常简单,通过代码引用游戏对象。非常好的信息。