如何解决如何创建小部件我已经有一个有效的活动
我正在为 Android 创建一个斐波那契时钟应用程序 + 小部件。 Fibonacci Clock. 我已经创建了一个功能齐全的它:它使用设备的时间,它被更新并选择斐波那契时钟必须同时显示的几个选项之一。
EditText _cuad0,_cuad1,_cuad2,_cuad3,_cuad4;
Button _btnVolver;
int hour,mins;
int[] thRes = new int[5];
int[] tmRes = new int[5];
Generararray1 miArray1 = new Generararray1(); //Se declaran todas las clases de array.
Generararray2 miArray2 = new Generararray2();
Generararray3 miArray3 = new Generararray3();
Generararray4 miArray4 = new Generararray4();
Generararray5 miArray5 = new Generararray5();
Generararray6 miArray6 = new Generararray6();
Generararray7 miArray7 = new Generararray7();
Generararray8 miArray8 = new Generararray8();
Generararray9 miArray9 = new Generararray9();
Generararray10 miArray10 = new Generararray10();
Generararray11 miArray11 = new Generararray11();
int nArray = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fibonacci);
final Handler handler = new Handler(); //Permite que la activadad se repita cada minuto.
final Runnable r = new Runnable() {
@Override
public void run() {
startAlert();
handler.postDelayed(this,60000); //La alerta se actualiza cada minuto.
}
};
handler.postDelayed(r,1); //La alerta se inicializa en 1 ms.
}
public void startAlert() {
_btnVolver = findViewById(R.id.btnVolver); // Se asocian los elementos de la interfaz a la parte lógica.
EditText[] cuadArray = new EditText[] { // Se crea un array de EditText que facilita el código.
_cuad0 = findViewById(R.id.cuad0),_cuad1 = findViewById(R.id.cuad1),_cuad2 = findViewById(R.id.cuad2),_cuad3 = findViewById(R.id.cuad3),_cuad4 = findViewById(R.id.cuad4)};
Calendar fecha = Calendar.getInstance();
hour = fecha.get(Calendar.HOUR_OF_DAY); // Se obtienen las horas y los minutos del dispositivo
mins = fecha.get(Calendar.MINUTE);
if (hour > 12) {
hour = hour - 12; //El reloj de Fibonacci no distingue entre horas am y horas pm
}
if (hour == 0) {
hour = 12;
}
mins=mins/5; // Permite reducir código. Solo se producen cambios notables en los minutos múltiplos de 5.
switch (hour) {
case 0:
thRes[0] = 0; thRes[1] = 0; thRes[2] = 0; thRes[3] = 0; thRes[4] = 0;
break;
case 1: //Permite acceder a la clase y seleccionar un array al azar.
Random r1h = new Random();
nArray = r1h.nextInt(2) + 1; // Se escribe "2" porque hay solo 2 opciones definidas en el array.
thRes = miArray1.metodoSeleccionararray(nArray);
break;
case 2:
Random r2h = new Random();
nArray = r2h.nextInt(2) + 1;
thRes = miArray2.metodoSeleccionararray(nArray);
break;
case 3:
Random r3h = new Random();
nArray = r3h.nextInt(3) + 1;
thRes = miArray3.metodoSeleccionararray(nArray);
break;
case 4:
Random r4h = new Random();
nArray = r4h.nextInt(3) + 1;
thRes = miArray4.metodoSeleccionararray(nArray);
break;
case 5:
Random r5h = new Random();
nArray = r5h.nextInt(3) + 1;
thRes = miArray5.metodoSeleccionararray(nArray);
break;
case 6:
Random r6h = new Random();
nArray = r6h.nextInt(4) + 1;
thRes = miArray6.metodoSeleccionararray(nArray);
break;
case 7:
Random r7h = new Random();
nArray = r7h.nextInt(3) + 1;
thRes = miArray7.metodoSeleccionararray(nArray);
break;
case 8:
Random r8h = new Random();
nArray = r8h.nextInt(3) + 1;
thRes = miArray8.metodoSeleccionararray(nArray);
break;
case 9:
Random r9h = new Random();
nArray = r9h.nextInt(3) + 1;
thRes = miArray9.metodoSeleccionararray(nArray);
break;
case 10:
Random r10h = new Random();
nArray = r10h.nextInt(2) + 1;
thRes = miArray10.metodoSeleccionararray(nArray);
break;
case 11:
Random r11h = new Random();
nArray = r11h.nextInt(2) + 1;
thRes = miArray11.metodoSeleccionararray(nArray);
break;
}
switch (mins) {
case 0:
tmRes[0] = 0; tmRes[1] = 0; tmRes[2] = 0; tmRes[3] = 0; tmRes[4] = 0;
break;
case 1:
Random r1m = new Random();
nArray = r1m.nextInt(2) + 1;
tmRes = miArray1.metodoSeleccionararray(nArray);
break;
case 2:
Random r2m = new Random();
nArray = r2m.nextInt(2) + 1;
tmRes = miArray2.metodoSeleccionararray(nArray);
break;
case 3:
Random r3m = new Random();
nArray = r3m.nextInt(3) + 1;
tmRes = miArray3.metodoSeleccionararray(nArray);
break;
case 4:
Random r4m = new Random();
nArray = r4m.nextInt(3) + 1;
tmRes = miArray4.metodoSeleccionararray(nArray);
break;
case 5:
Random r5m = new Random();
nArray = r5m.nextInt(3) + 1;
tmRes = miArray5.metodoSeleccionararray(nArray);
break;
case 6:
Random r6m = new Random();
nArray = r6m.nextInt(4) + 1;
tmRes = miArray6.metodoSeleccionararray(nArray);
break;
case 7:
Random r7m = new Random();
nArray = r7m.nextInt(3) + 1;
tmRes = miArray7.metodoSeleccionararray(nArray);
break;
case 8:
Random r8m = new Random();
nArray = r8m.nextInt(3) + 1;
tmRes = miArray8.metodoSeleccionararray(nArray);
break;
case 9:
Random r9m = new Random();
nArray = r9m.nextInt(3) + 1;
tmRes = miArray9.metodoSeleccionararray(nArray);
break;
case 10:
Random r10m = new Random();
nArray = r10m.nextInt(2) + 1;
tmRes = miArray10.metodoSeleccionararray(nArray);
break;
case 11:
Random r11m = new Random();
nArray = r11m.nextInt(2) + 1;
tmRes = miArray11.metodoSeleccionararray(nArray);
break;
}
for (int x = 0; x < cuadArray.length; x++) { //Se ha creado un bucle for que permite reducir el código.
if (tmRes[x] == thRes[x] && thRes[x] == 1) {
cuadArray[x].setBackgroundResource(R.drawable.cuadazul);
} else if (tmRes[x] == thRes[x] && thRes[x] == 0) {
cuadArray[x].setBackgroundResource(R.drawable.cuadblanco);
} else if (tmRes[x] == 0 && thRes[x] == 1) {
cuadArray[x].setBackgroundResource(R.drawable.cuadrojo);
} else if (tmRes[x] == 1 && thRes[x] == 0) {
cuadArray[x].setBackgroundResource(R.drawable.cuadverde);
}
}
_btnVolver.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(getApplicationContext(),MainActivity.class);
startActivity(i);
finish();
}
});
}
}
Layout Fibonacci Clock Activity work
我的目的是创建一个与 Activity 工作方式相同的小部件。
小部件只需要显示方块。而已。我怎么能做到?实现它的最简单选择是什么?
谢谢大家。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。