我想创建一个迪斯科舞厅,但一次只能用一盏灯

时间:2017-02-02 19:42:16

标签: android

我没想到如何拍摄图标,以便它可以填满整个屏幕。

它还给出了错误java.lang.NullPointerException:尝试写入空数组

我的mainActivity文件

package com.example.dk.bfit1;

import android.graphics.Color;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;

import java.util.concurrent.ThreadLocalRandom;

public class MainActivity extends AppCompatActivity {
Button[] button;


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

    button[0]=(Button)findViewById(R.id.a1);
  button[1]=(Button)findViewById(R.id.a2);
  button[2]=(Button)findViewById(R.id.a3);
  button[3]=(Button)findViewById(R.id.a4);
   button[4]=(Button)findViewById(R.id.a5);
  button[5]=(Button)findViewById(R.id.a6);
  button[6]=(Button)findViewById(R.id.a7);
 button[7]=(Button)findViewById(R.id.a8);
 button[8]=(Button)findViewById(R.id.a9);
  button[9]=(Button)findViewById(R.id.a10);


 run();

  }

void run(){
    int i=0;
    while(i<10){
        i++;
        int n =(int)(Math.random() *9 + 1);
        try{
               for(int j=0;i<10;j++) {

                   button[n].setBackgroundResource(android.R.color.black);
                   Thread.sleep(800);
                   Log.d("Dk", "BUtton icon is"+n);
               }
        }catch(InterruptedException ex){
           Log.d("dk","error at "+ex);
        }
    }
 } 

我的主要xml文件

 <?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.dk.bfit1.MainActivity">

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/a1"/>
 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     android:id="@+id/a2"/>
 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     android:id="@+id/a3"/>
 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     android:id="@+id/a4" />

 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/a5"/>
 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     android:id="@+id/a6" />`enter code here`
 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"`enter code here`
     android:id="@+id/a7" />
 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     android:id="@+id/a8"/>

 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     android:id="@+id/a9" />
 <Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
     android:id="@+id/a10" />


  </LinearLayout>

1 个答案:

答案 0 :(得分:0)

您需要初始化按钮阵列。

尝试Button[] button = new Button[10];,其中10是数组的长度。

有关阵列的详细信息,请检查:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html