0

ユーザーがボタンをクリックすると、デフォルトの色でいくつかの三角形が描画されます。次に、ユーザーがインフレータ メニューから色を選択すると、その特定の色で三角形が再描画されます。最初は三角形を描画し、別の色を選択すると、別の色で再描画されません。しかし、携帯電話の電源を切って再び電源を入れると、色が変わりました。

これが私のコードです:

//------------------------------------------------------------------------------------------------  
    public boolean onCreateOptionsMenu(Menu menu)
    {
        MenuInflater menuInflater = getMenuInflater();
        menuInflater.inflate(R.menu.issm_menu,menu);

        return true;
    }
//------------------------------------------------------------------------------------------------
   public boolean onOptionsItemSelected(MenuItem item)
    {
        switch (item.getItemId())
        {
            case R.id.menu_about:          
                Toast.makeText(ISSM.this, "ISSM Application", Toast.LENGTH_SHORT).show();
                return true;

            case R.id.cl_autumn:
                colorMap.setAutumn();
                drawFigure();
                return true;

            case R.id.cl_bone:
                colorMap.setBone();
                drawFigure();
                return true;

                default:
                       return true;
     }

    public void onClick(View view) 
    {
        this.fillBuffer();
        drawFigure();
    }
//---------------------------------------------------------------------------------- 
    public void drawFigure()
    {
        mGLView = new MyGLSurfaceView(this, buff, size, colorMap);;
        frame.addView(mGLView);
    }

メニューで色を押すとすぐに色が変わるはずです。オフにしてオンにしたくありません(ちなみに、スリープとウェイクのように、完全に電源をオフにするわけではありません)

4

1 に答える 1

0

解決しました。最初にframe.removeView()を呼び出してから、別のビューを追加する必要があります。

于 2012-12-14T17:56:16.457 に答える