我想传输2个 float
值和1 boolean
价值从我 MainActivity
班级 MyCanvas
类(这是一个类扩展的View)?这可能吗?
我知道这是个新手问题,但我找到的所有资料都告诉我使用 Intent
和 Bundle
或只使用 Bundle.setArguments()
但显然,他们都不适合View类。
谢谢你。
EDIT 1
这是我的 MainActivity
public class MainActivity extends AppCompatActivity {
private MyCanvas myCanvas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myCanvas = (MyCanvas) findViewById(R.id.canvas);
}
public void btnCalcularOnClick(View v) {
TextView xResultado = (TextView) findViewById(R.id.xResultado);
TextView yResultado = (TextView) findViewById(R.id.yResultado);
EditText txtX = (EditText) findViewById(R.id.txtX);
EditText txtY = (EditText) findViewById(R.id.txtY);
//Comeco da Matematica
float x = Float.parseFloat(txtX.getText().toString());
float y = Float.parseFloat(txtY.getText().toString());
float xResult = 5 * x;
float yResult = 35 * y;
boolean buttonState = true;
}
}
MyCanvas
阶级是这样
public class MyCanvas extends View {
Paint myPaint;
public MyCanvas(Context context, AttributeSet attrs) {
super(context, attrs);
myPaint = new Paint();
}
@Override
public void onDraw(Canvas myCanvas) {
super.onDraw(myCanvas);
myPaint.setColor(Color.BLACK);
myPaint.setStrokeWidth(3);
float cx, cy;
boolean buttonState2;
}
}
在这种情况下,我想转移。
xResult
(MainActivity) -> cx
(MyCanvas)yResult
(MainActivity) -> cy
(MyCanvas)buttonState
(主要活动) -> buttonState2
(myCanvas)你可以使用 setters
中设置所需的值。MyCanvas
类中创建方法。
在你的 MyCanvas
这样的类。
public class MyCanvas extends View {
private float cx, cy;
private boolean buttonState2;
...
public void setResults(float xResult, float yResult) {
cx = xResult;
cy = yResult;
}
public void setButtonState(boolean state) {
buttonState2 = state;
}
}
然后在你的活动课上
public class MainActivity extends AppCompatActivity {
private MyCanvas myCanvas;
...
public void btnCalcularOnClick(View v){
TextView xResultado = (TextView)findViewById(R.id.xResultado);
TextView yResultado = (TextView)findViewById(R.id.yResultado);
EditText txtX= (EditText)findViewById(R.id.txtX);
EditText txtY= (EditText)findViewById(R.id.txtY);
//Comeco da Matematica
float x = Float.parseFloat(txtX.getText().toString());
float y = Float.parseFloat(txtY.getText().toString());
float xResult = 5 * x;
float yResult = 35 * y;
boolean buttonState = true
myCanvas.setResults(xResult, yResult);
myCanvas.setButtonState(buttonState);
}
}
创建静态变量并将其用于你的MyCanvas类中。
在MainActvity中:-
public static float var1 = 1.0f;
public static float var2 = 2.0f;
public static boolean var3 = true;
而在你的MyCanvas类中:-
private float var1InCanvas = MainActivity.var1;
private float var2InCanvas = MainActivity.var2;
private float var3inCanvas = MainActivity.var3;