我有一个自定义视图(DrawFigures),它有一个 onTouch 方法来执行一系列操作。有一个布局,有几个按钮,一个 TextView 和一个 RelativeView 来动态添加自定义视图。然后,在 MainActivity.class 中,当在这个自定义视图中调用 onTouch 方法时,我需要接收 DrawFigures 中某些属性的值,以便在 TextView 组件中显示它们。
这是自定义视图的代码:
public abstract class DrawFigures extends View{
private float value1;
public boolean onTouch(Motion Event){
int action = event.getAction();
if(action==MotionEvent.ACTION_MOVE){
// ... methods that provoke that value1 changes
}else if(action==MotionEvent.ACTION_DOWN){
// ...
}else if(action==MotionEvent.ACTION_UP){
// ...
}
}
// ...
return true;
}
由于 DrawFigures 的 onTouch 方法,我无法接收 value1 以在 MainActivity 的 TextView 中显示它。这个问题怎么可能解决?在 MianActivity 中实现 OnTouch 方法?怎么做?MainActivity.class 如下所示:
public class MainActivity extends Activity implements View.OnTouchListener{
DrawFigures fig;
TextView txtInfo;
// ...
public void btnSecRec(View v){
int id = v.getId();
if (id == R.id.btnSecRec){
RelativeLayout parent = (RelativeLayout)findViewById(R.id.viewDatosSec);
parent.removeAllViews();
fig = new DrawRectangleWithDimensions(this);
fig.setOnTouchListener(this);
fig.setFigure(10, 40);
parent.addView(fig);
}
}
public boolean onTouch(View v, MotionEvent event) {
int action = event.getAction();
if (action == MotionEvent.ACTION_MOVE) {
if (fig.touching == true) {
String value = Float.toString(fig.getChangingDimensionValue());
txtInfo.setText(value);
}
}
return true;
}
}