2 u014742281 u014742281 于 2015.06.02 08:34 提问

android surfaceview 和activity之间数据传递

想实现一个功能 就是在mainActivity中放置一个surfaceview和一个Textview
在surfaceview中添加点击onTouch事件 每次点击 让自己定义的surfaceview的变量
step加一 并时时在mainActivity的TextView中更新step的显示
不知道问题有没有描述清楚 就是想在一个view中时时显示另外一个view中定义的变量

2个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.06.02 09:19
已采纳
 public class MainActivity1 extends Activity  {
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.ll);

        MySurfaceView sv = (MySurfaceView)findViewById(R.id.sv);
        TextView tv = (TextView)findViewById(R.id.tv);
        sv.setCallBack(new CallBack(){//设置回调接口实现类
            @Override
            public void setTextView(String str) {
                tv.setText(str);//如果是在thread线程中调用的,这里包装一层handle再更新textview的值

            }           
        })

    }
    interface CallBack{//定义一个回调接口
        public void setTextView(String str);
    }
}
class MySurfaceView extends SurfaceView{
    private CallBack callBack = null;
    public MySurfaceView(Context context) {
        super(context);
        // TODO Auto-generated constructor stub
    }
    public void setCallBack(CallBack cb){//设置回调接口
        this.callBack = cb;
    }
    public void show(String str){//回调显示
        if(this.callBack!=null) this.callBack.setTextView(str);
    }
}
baidu_23086307
baidu_23086307   2015.06.02 11:28

public class MainActivity1 extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.ll);

    MySurfaceView sv = (MySurfaceView)findViewById(R.id.sv);
    TextView tv = (TextView)findViewById(R.id.tv);
    sv.setCallBack(new CallBack(){//设置回调接口实现类
        @Override
        public void setTextView(String str) {
            tv.setText(str);//如果是在thread线程中调用的,这里包装一层handle再更新textview的值

        }           
    })

}
interface CallBack{//定义一个回调接口
    public void setTextView(String str);
}

}
class MySurfaceView extends SurfaceView{
private CallBack callBack = null;
public MySurfaceView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public void setCallBack(CallBack cb){//设置回调接口
this.callBack = cb;
}
public void show(String str){//回调显示
if(this.callBack!=null) this.callBack.setTextView(str);
}
}

Csdn user default icon
上传中...
上传图片
插入图片