Android error en tutorial no puede encontrar la variable de símbolo activity_display_message
Estoy tratando de aprender la creación de aplicaciones para Android a través de tutoriales y Android Studio. Algunos de los comentarios sobre xml y las importaciones fueron helpfult. Estoy abajo a un error. Consigo este error Error: (22, 57) error: no puede encontrar la variable del símbolo activity_display_message
Los errores con respecto a las importaciones que he fijado con algunas búsquedas en el flujo de pila. Me falta algo
- ImageView esquinas redondeadas
- Visualización de la variable en pantalla usando Android por TextViews
- Mejor manera de analizar la Biblia en Android
- Android XML redondeado esquinas recortadas
- Android Support BottomSheetBehavior no puede ser dinámico?
DisplayMessageActivity
package com.example.rpinto.myfirstapp; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.ViewGroup; import android.widget.TextView; public class DisplayMessageActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_message); Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); TextView textView = new TextView(this); textView.setTextSize(40); textView.setText(message); ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_message); layout.addView(textView); } }
activity_display_message.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" 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.rpinto.myfirstapp.DisplayMessageActivity" tools:showIn="@layout/activity_display_message" android:id="@+id/content"> </RelativeLayout>
construir un gradiente
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "24.0.1" defaultConfig { applicationId "com.example.rpinto.myfirstapp" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' }
- Android: Cómo acceder a la carpeta de recursos de otra aplicación de Android
- LinearLayout achartengine El gráfico no se muestra en ScrollView
- Android.view.InflateException: Línea de archivo XML binario # 33: Error al inflar fragmento de clase
- Generar un recurso de cadena que contiene% from build.gradle con resValue
- Error al agregar tema personalizado a la aplicación
- Android: Cómo evitar que el diseño se presione cuando se invoca el teclado
- Android: Hacer caracteres en negrita en xml
- ¿El análisis de archivos xml en android ocurre en tiempo de ejecución o tiempo de compilación?
No sé si alguien todavía necesita la respuesta a esto, pero lo pensé así:
Lo vi en el tutorial:
Nota: El diseño XML generado por versiones anteriores de Android Studio podría no incluir el atributo android: id. La llamada findViewById () fallará si el diseño no tiene el atributo android: id. Si este es el caso, abra activity_display_message.xml y añada el atributo android: id = "@ + id / activity_display_message" al elemento de diseño.
Por lo tanto, en Res -> layout -> activity_display_message.xml, entré en la línea
android:id="@+id/activity_display_message"
En cualquier lugar dentro de las etiquetas RelativeLayout. En mi caso específicamente, lo empujé al azar entre el android: paddingTop y las herramientas: context fields
Espero que esto ayude: D
Yo tuve el mísmo problema. Bajo la sección "Construir una Intención" en las instrucciones de Android Studio, es fácil pasar por alto esta línea:
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
Asegúrate de que esto esté incluido encima de @Override en MainActivity.java y estás todo listo 🙂
Creo:
ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_message);
Debiera ser:
RelativeLayout layout = (RelativeLayout ) findViewById(R.id.content);
Aquí está la solución actualizada para esto.
Intención es una subclase de Actividad principal por lo que no es necesario especificar explícitamente. significa que podemos llamar a EXTRA_MESSAGE, en lugar de MainActivity.EXTRA_MESSAGE.
super.onCreate (savedInstanceState); setContentView (R.layout.activity_display_message);
Intent intent = getIntent(); String message = intent.getStringExtra(EXTRA_MESSAGE); TextView textView = new TextView(this); textView.setTextSize(40); textView.setText(message); ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_message); layout.addView(textView);
He resuelto el mismo problema por el proyecto limpio y después construyo el gradle, intento por favor una vez.
"@layout/activity_display_message"
Es un diseño. No es una identificación.
Usted correctamente lo usó aquí como R.layout
setContentView(R.layout.activity_display_message);
Pero esto es incorrecto como R.id
ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_message); layout.addView(textView);
El método corregido debería idealmente ser así, pero tenga en cuenta que es posible que desee algunos LayoutParams en el TextView, de lo contrario podría no aparecer en la pantalla.
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_message); Intent intent = getIntent(); String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE); TextView textView = new TextView(this); textView.setTextSize(40); textView.setText(message); ViewGroup layout = (ViewGroup) findViewById(R.id.content); layout.addView(textView); }
El error proviene del archivo MainActivity.java.
TextView tv = (TextView) findViewById(R.id.editText);
Donde tengo (R.id.editText); ….. el sistema puso (R.id.edit_message);
edit_message es la función añadida al cuadro de texto, pero está debajo del "bloque" de código (EditText). Nuevo en Java, no está seguro de qué se llama el bloque de código y no está seguro de por qué el programa poner eso en la clase pública. Espero que esto ayude.
package com.example.josh.myfirstapplication; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Example of a call to a native method TextView tv = (TextView) findViewById(R.id.editText); tv.setText(stringFromJNI()); } /** * A native method that is implemented by the 'native-lib' native library, * which is packaged with this application. */ public native String stringFromJNI(); // Used to load the 'native-lib' library on application startup. static { System.loadLibrary("native-lib"); } }
Tuve el mismo mensaje de error: no se puede encontrar la variable de símbolo activity_display_message
Lo solucioné agregando android: id en activity_display_message.xml
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.galo.myapplication.DisplayMessageActivity" android:id="@+id/activity_display_message"> </android.support.constraint.ConstraintLayout>
Comprueba si tienes un código como este en MainActivity.java
:
public class MainActivity extends AppCompatActivity { public static final String EXTRA_MESSAGE = "com.example.MyApplicationstart.MESSAGE";
"com.example.MyApplicationstart.MESSAGE", donde "MyApplicationstart" es un nombre de su proyecto.