J'essaie d'apprendre le développement d'applications Android à l'aide de didacticiels et d'Android Studio. Certains des commentaires concernant XML et les importations ont été utiles. Je suis à une erreur. J'ai cette erreur Erreur: (22, 57) erreur: impossible de trouver la variable de symbole activity_display_message
Les erreurs concernant les importations que j'ai corrigées avec quelques recherches sur le flux de pile. Il me manque quelque chose
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>
build.gradle
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'
}
Je ne sais pas si quelqu'un a encore besoin de la réponse à cela, mais je l'ai compris comme ça:
J'ai vu cela dans le tutoriel:
Remarque: la disposition XML générée par les versions précédentes d'Android Studio peut ne pas inclure l'attribut Android: id. L'appel findViewById () échouera si la présentation n'a pas l'attribut Android: id. Si tel est le cas, ouvrez activity_display_message.xml et ajoutez l'attribut Android: id = "@ + id/activity_display_message" à l'élément layout.
Donc, sous Res -> layout -> activity_display_message.xml, j'ai entré la ligne
Android:id="@+id/activity_display_message"
N'importe où dans les balises RelativeLayout. Dans mon cas en particulier, je l'ai aléatoire au hasard entre Android: paddingTop et outils: champs de contexte
J'espère que cela aide: D
J'ai eu le même problème. Sous la section "Construire une intention" dans les instructions d'Android Studio, il est facile de rater cette ligne:
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
Assurez-vous que cela est inclus au-dessus de @Override dans MainActivity.Java et que tout est prêt :)
Je pense:
ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_message);
Devrait être:
RelativeLayout layout = (RelativeLayout ) findViewById(R.id.content);
Voici la solution mise à jour pour cela.
L'intention est une sous-classe de l'activité principale, il n'est donc pas nécessaire de spécifier explicitement. Cela signifie que nous pouvons appeler EXTRA_MESSAGE
au lieu 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);
L'erreur provient du fichier MainActivity.Java.
TextView tv = (TextView) findViewById(R.id.editText);
Où j'ai (R.id.editText); ..... le système mis (R.id.edit_message);
edit_message est la fonction ajoutée à la zone de texte mais elle se trouve sous le "bloc" (EditText) du code. Nouveau en Java, je ne sais pas comment s'appelle le bloc de code ni pourquoi le programme l'a placé dans la classe publique. J'espère que cela t'aides.
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");
}
}
J'ai résolu le même problème par projet propre, puis Build the gradle, veuillez essayer une fois.
J'ai eu le même message d'erreur: impossible de trouver la variable de symbole activity_display_message
Je l'ai résolu en ajoutant Android: id in 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>
J'ai eu ce problème tellement de fois en essayant de faire ce tutoriel, et d'ajouter à la seule réponse qui m'a aidé, qui était de supprimer le MainActivity.
de la partie MainActivity.EXTRA_MESSAGE
...
J'ai également dû importer les éléments suivants dans DisplayMessageActivity.Java
:
import static Android.provider.AlarmClock.EXTRA_MESSAGE;
Cela a complètement résolu toutes mes erreurs et m'a permis de continuer le tutoriel.
Vérifiez si vous avez un code comme celui-ci dans MainActivity.Java
:
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE = "com.example.MyApplicationstart.MESSAGE";
"com.example.MyApplicationstart.MESSAGE", où "MyApplicationstart" est le nom de votre projet.
"@layout/activity_display_message"
C'est une mise en page. Pas une identité.
Vous l'avez correctement utilisé ici en tant que R.layout
setContentView(R.layout.activity_display_message);
Mais c'est faux comme R.id
ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_message);
layout.addView(textView);
La méthode corrigée devrait idéalement ressembler à ceci, mais notez que vous voudrez peut-être des LayoutParams sur le TextView, sinon elle pourrait ne pas s'afficher à l'écran.
@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);
}