Android: "Expresión esperada" al pasar una clase de actividad
Soy un poco nuevo para la programación de Android y Java en general, y no puedo averiguar lo que está causando este error; Como yo entiendo que esto debería funcionar. En el código que se muestra a continuación (cerca del final del primer fragmento), la línea "ColourOutput.do_output((Activity) com.(name-removed).(app-name-removed).ColourActivity);"
Está dando el error "Expression expected"
en el texto "com.(name-removed).(app-name-removed).ColourActivity"
en Android Studio 1.1.0.
(Esto es dentro de la clase "public class ColourActivity extends Activity"
).
- Cómo agregar / quitar Fragmento en el botón haga clic?
- La vista de lista de Android ya no resalta la selección onclick
- Error en Callin Java webservice de Android usando k-Soap
- Obtener el nombre de archivo detrás de una url amigable en Java
- Android FFmpegMediaMetadataRetriever.getFrameAtTime () es lento
private Camera.PreviewCallback preview_callback = new Camera.PreviewCallback() { @Override public void onPreviewFrame(byte[] data, Camera camera) { int width = mCamera.getParameters().getPreviewSize().width; int height = mCamera.getParameters().getPreviewSize().height; int raw_pixels[]; int pixels[]; raw_pixels = new int[width * height]; pixels = new int[get_sample_width() * get_sample_height()]; convert_yuv(raw_pixels, data, width, height); crop_pixels(raw_pixels, pixels, width, height, (width - get_sample_width()) / 2, (height - get_sample_height()) / 2, get_sample_width(), get_sample_height()); if (PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("use_mean", true) == true) { ColourOutput.add_colour_to_output( ColourTools.get_mean( pixels, get_sample_width(), get_sample_height(), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("detect_secondary", true), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("detect_white", true), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("detect_brightness", true), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getInt("quantization_secondary", 32), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getInt("quantization_dark", 43), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getInt("quantization_light", 128), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("quantization_matching_only", true) ), ColourOutput.ColourType.MEAN); } if (PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("use_mode", true) == true) { ColourOutput.add_colour_to_output( ColourTools.get_mode( pixels, get_sample_width(), get_sample_height(), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("detect_secondary", true), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("detect_white", true), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("detect_brightness", true), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getInt("quantization_secondary", 32), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getInt("quantization_dark", 43), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getInt("quantization_light", 128), PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getBoolean("quantization_matching_only", true) ), ColourOutput.ColourType.MODE); } ColourOutput.do_output((Activity) com.(name-removed).(app-name-removed).ColourActivity); } };
Aquí está la definición de "ColourOutput.do_output" :
public class ColourOutput { private static boolean output_clear = true; private static String output_buffer = ""; public static enum ColourType { MEAN, MODE } public static void add_colour_to_output(ColourTools.ColourDescription colour, ColourType type) { if (output_clear == true) { output_buffer = colour.Brightness.toString() + " " + colour.Colour.toString(); } else { output_buffer = output_buffer + " " + colour.Brightness.toString() + " " + colour.Colour.toString(); } output_clear = false; } public static void do_output(Activity activity) { ((TextView) activity.findViewById(R.id.output_text)).setText(output_buffer); output_buffer = ""; output_clear = true; } }
- Botón para Android Onclick
- {Entrada de Facebook} java.lang.NoClassDefFoundError: android.support.v4.content.LocalBroadcastManager
- La orden de LinkedHashMap entrySet no se conserva en un flujo (Android)
- Mejor manera de extraer elementos de una matriz de 10 a la vez
- ¿Cómo puedo mostrar elipses en mi TextView si es mayor que la línea 1?
- Cómo obtener todas las coordenadas xyy de una vista de imagen en Android?
- Cómo cerrar / cerrar los diálogos de mensajes de la clase 0 en Android
- ¿Por qué proguard procesa AndroidManifest.xml?
El mensaje de error debe ser autoexplicativo: ...ColourActivity
es un nombre de clase y un nombre de clase por sí mismo no es una expresión válida en Java. Esto no es un problema de Android, se trata de un simple error de sintaxis.
do_output()
espera una instancia de una Activity
. No estoy muy seguro, lo que estás tratando de lograr tratando de pasar el nombre de la clase de actividad.
Yo asumiría, que – ya que está llamando do_output()
desde dentro de su actividad – es posible que desee probar
ColourOutput.do_output(ColorActivity.this);
en lugar.
Como se sugiere por @Priya Singhal, la referencia explícita a ColorActivity.this
es necesario como usted está llamando el método de dentro de una clase interna y this
refiere a la instancia de esa clase interna.
- Ocultar / Mostrar fragmento con fragmentTransaction no funciona
- Biblioteca de iconos de diseño estándar de Android estándar