0

私はこのようなコードを持っています、私はそれをクリックした後に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();
4

2 に答える 2

1

特定のビューへの参照がある場合は、次を使用できます。

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);
               }
             });
于 2012-06-05T16:17:16.330 に答える
1

AndroidはJavaで動作します。Javaでオブジェクトを破棄または削除することはできません。必要に応じて、マシンがオブジェクトを自由に破棄できることをJavaマシンに伝えることしかできません。

はい、私はあなたがから始めるべきだと思いますremoveView(btn)。ただし、設定することも忘れないでくださいbtn=null。したがって、メモリを解放できることをJavaマシンに伝えています。

于 2012-06-05T16:18:14.060 に答える