Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从布局内部的SurfaceView更新编程布局_Android_Layout_Surfaceview - Fatal编程技术网

Android 从布局内部的SurfaceView更新编程布局

Android 从布局内部的SurfaceView更新编程布局,android,layout,surfaceview,Android,Layout,Surfaceview,所以,我一直在寻找答案。大多数结果显示如何从布局外部进行更新。这是我的简化代码 主要活动: public class MainActivity extends Activity{ /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { this.requestWindowFeature(Window

所以,我一直在寻找答案。大多数结果显示如何从布局外部进行更新。这是我的简化代码

主要活动:

public class MainActivity extends Activity{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {   this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
        WindowManager.LayoutParams.FLAG_FULLSCREEN);
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);
        LinearLayout surface = (LinearLayout)findViewById(R.id.surface);
        surface.addView(new UnitActivity(this));}}  
统一性:

public class UnitActivity extends SurfaceView
{
    private MainThread thread;
    private SurfaceHolder holder;

    public UnitActivity(Context context){
        super(context);touch = new MyTouchListener();
        this.setOnTouchListener(touch);

        thread = new MainThread(this);
        holder=getHolder();
        holder.addCallback(new SurfaceHolder.Callback(){    
            @Override
            public void surfaceCreated(SurfaceHolder p1)
            {
                thread.setRunning(true);
                thread.start();         
            }

            @Override
            public void surfaceChanged(SurfaceHolder p1, int p2, int p3, int p4)
            {
                // TODO: Implement this method
            }
            @Override
            public void surfaceDestroyed(SurfaceHolder p1)
            {
                boolean retry = true;
                while (retry)
                {
                    try
                    {
                        thread.join();
                        retry = false;
                    }
                    catch(Exception e){
                    }
                }
            }       
        });
    setFocusable(true)
    }
    @Override 
    public void onDraw(Canvas c) {
        //draw to canvas here
        *******Here is where I want to, in some way 
        make a call to add a ScrollView or 
        TextView to the original Layout******
    }
} 

基本上,我的
SurfaceView
正在运行
线程进行更新。我希望某个条件触发
文本视图
滚动视图
在屏幕上可见。我想也许我可以让布局运行一个线程并自我更新,但这样做杀死了我的应用程序。。。我感谢您的帮助或意见

杀死你的应用程序。。。怎样?它是怎么死的?我的意思是把我的代码切碎并重新安排,只是让它不能运行。当我让它停止处理错误时,它不会显示SurfaceView。但是我想让上面的想法运行起来,或者以一种更好的方式执行任务。好的,为了澄清,我想从所述布局中包含的编程视图更新我的布局。有可能吗?如果有,怎么可能?如果没有,我应该如何着手实现我想要的结果?