应用程序在使用setVisibility时崩溃

时间:2017-04-01 12:19:20

标签: java android xml

正如标题所说,

使用startLabel.setVisibility(View.GONE)时; 该应用程序崩溃,我不知道如何解决

下面的Java代码。

image

以下是代码的XML版本。

public class Main extends AppCompatActivity {


private TextView  scoreLabel;
private TextView  startLabel;

private ImageView box;
private ImageView orange;
private ImageView pink;
private ImageView black;

// Position
private int boxY;
private int boxX;

// Initialize Class
private Handler handler = new Handler();
private Timer timer = new Timer();

//Status Check
private boolean action_flg = false;
private boolean start_flg = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    scoreLabel = (TextView) findViewById(R.id.scoreLabel);
    scoreLabel = (TextView) findViewById(R.id.startLabel);

    box = (ImageView) findViewById(R.id.box);
    orange = (ImageView) findViewById(R.id.orange);
    pink = (ImageView) findViewById(R.id.pink);
    black = (ImageView) findViewById(R.id.black);


    //Moves images to out of the screen
    //orange.setX(-80.0f);
    orange.setY(-80.0f);

   // pink.setX(-80.0f);
    pink.setY(-80.0f);

    //black.setX(-80.0f);
    black.setY(-80.0f);


     boxY = 200;

}

public void changePos()
{

    //Move box
    if (action_flg == true)
    {
        // touching
        boxY  -= 20;
    } else {
        //released
        boxY += 20;

    }
    box.setY(boxY);
}

public boolean onTouchEvent(MotionEvent me)
{

    if (start_flg == false)
    {
        start_flg = true;

        //Issue here with setting the visibility of the start
       // startLabel.setVisibility(View.GONE);

        timer.schedule(new TimerTask()
        {
            @Override
            public void run() {
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        changePos();
                    }
                });
            }

            // Changing these numbers slows down how fast the box moves.
        }, 0, 100);
    }else {
        if(me.getAction() == MotionEvent.ACTION_DOWN)
        {
            action_flg = true;
        }else if (me.getAction() == MotionEvent.ACTION_UP){
            action_flg = false;
        }

    }

    return true;
  }
}

任何人都有兴趣解决此问题,谢谢

1 个答案:

答案 0 :(得分:0)

您的startLabel为空(复制粘贴问题?^^)。替换这个:

scoreLabel = (TextView) findViewById(R.id.startLabel);

用这个:

startLabel = (TextView) findViewById(R.id.startLabel);