Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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 删除计时器上的Imageview_Android_Timer_Imageview - Fatal编程技术网

Android 删除计时器上的Imageview

Android 删除计时器上的Imageview,android,timer,imageview,Android,Timer,Imageview,我有这样一个代码,我想在单击imageview后删除它。我使用相对布局。我该怎么办? 我必须删除它,而不是隐藏它,因为我有很多imageview,我想销毁它,这样程序才能更快地工作 banyakmusuh= new CountDownTimer(50000,1500) { @Override public void onTick(long millisUntilFinished) { // TODO Auto-generated method stub

我有这样一个代码,我想在单击imageview后删除它。我使用相对布局。我该怎么办? 我必须删除它,而不是隐藏它,因为我有很多imageview,我想销毁它,这样程序才能更快地工作

banyakmusuh= new CountDownTimer(50000,1500) {

    @Override
    public void onTick(long millisUntilFinished) {
        // TODO Auto-generated method stub

        Random a = new Random();
        int posisix = a.nextInt(500);
        btn = new ImageView(level2.this);
        btn.setImageResource(R.drawable.salju);
        i= i+1;
        btn.setId(i);                               
        RelativeLayout.LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
        params.setMargins(posisix, 0, 0, 0);
        btn.setLayoutParams(params);
        RelativeLayout linearLayout = (RelativeLayout) findViewById(R.id.tingkat2);                 
        linearLayout.addView(btn);
        btn.setOnClickListener(new View.OnClickListener() {
        @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                    data.nilai+=10;
                    TextView score1 = (TextView) findViewById(R.id.skore);
                    score1.setText(String.valueOf(data.nilai));
                //what the code for delete imageview? 
                //some people say to write this code but it cant, there are a green line when i debug it 
               //((RelativeLayout)v.getParent()).removeView(v);
                                }
                            });

                        }

                        @Override
                        public void onFinish() {
                            // TODO Auto-generated method stub
                            //banyakmusuh.start();
                        }
                    }.start();

如果有对特定视图的引用,则可以使用:

yourRelativeLayout.removeView(imageViewToRemove);
我会:

// I would consider renaming your layout, btw
final RelativeLayout linearLayout = (RelativeLayout) findViewById(R.id.tingkat2);
btn.setOnClickListener(new OnClickListener() 
            {
               @Override
               public void onClick(View v)
               {
                   linearLayout.removeView(btn);
               }
             });

Android在Java上工作。在java中不能销毁或删除对象。您只能对java机器说,如果需要,机器可以随意销毁对象


是的,我认为,您应该从
removeView(btn)
开始。但也不要忘记设置
btn=null
。因此,您告诉java机器可以释放内存

移除视图怎么样?我有一个问题,先生,我有一个简单的游戏,我们必须点击imageview。。如果有这么多的mageview,而我不删除它,程序将运行得很慢。。怎么解决,先生?我已经编辑了答案。我很乐意帮忙,请随便问,我不是“先生”,朋友:-)。至于运行缓慢的程序,请查看android开发者页面中的优化页面,谢谢我将重命名我的布局。。它不起作用。。单击imageview时,会显示一个类文件编辑器..:(从技术上讲,这应该会将其从视图中删除。但是,我想作为一种解决方法,您可以尝试:setBackgroundDrawable(null);ImageView仍将保留在内存中,因为视图有对它的引用,但至少图像数据将不再存在。但是,removeView应该可以工作,如果这不能为您解决问题,您可能会遇到更严重的问题,但如果ImageView保留,则会出现一个新问题..因为我想将碰撞ImageView设置为mageview..如果imageview仍然保留,则会导致循环冲突..=(可能会添加可见性检查以排除任何不可见的视图:if(view.isShown())