在教程的Android出错找不到符号变量activity_display_message
我想通过学习教程和Android工作室Android应用建设。有关xml和导入的一些评论是有帮助的。我陷入了一个错误。我得到这个错误错误:(22,57)错误:无法找到符号变量activity_display_message在教程的Android出错找不到符号变量activity_display_message
的误差在进口方面我有固定与堆流量一些搜索。我失去了一些东西
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'
}
我已经通过清洁工程解决同样的问题,然后生成gradle这个,请尝试一次。
我想:
ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_message);
应该是:
RelativeLayout layout = (RelativeLayout) findViewById(R.id.content);
"@layout/activity_display_message"
这是一个布局。不是身份证件。
你正确使用它这里R.layout
setContentView(R.layout.activity_display_message);
但是,这是错误的,因为R.id
ViewGroup layout = (ViewGroup) findViewById(R.id.activity_display_message);
layout.addView(textView);
校正方法最好应该是这样的,但请注意,您可能希望在一些的LayoutParams TextView,否则它可能不会显示在屏幕上。
@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);
}
非常感谢。就是这样。有效。 –
不知道是否有人仍然需要这个问题的答案,但我想它是这样的:
我在教程中看到这一点:
Note: The XML layout generated by previous versions of Android Studio might not include the android:id attribute. The call findViewById() will fail if the layout does not have the android:id attribute. If this is the case, open activity_display_message.xml and add the attribute android:id="@+id/activity_display_message" to the layout element.
所以,RES下 - > layout - > activity_display_message.xml,我输入该行
android:id="@+id/activity_display_message"
RelativeLayout标记内的任何位置。 paddingTop和工具:上下文字段
希望这有助于:d
我也跟着教程,遇到同样的问题,我仍然得到相同的错误消息:“错误:(18,60)错误:无法找到符号变量EXTRA_MESSAGE” 我已经everthing最新Andriod Studios和我的属性ID已经存在于activity_display_message.xml文件中。 我有一种感觉,EXTRA_MESSAGE与Acivity_Main.java文件不能沟通,但我不确定它为什么看不到它。 – Tscott
下面是该更新的解决方案在我的情况而言,笔者随机在两者之间的机器人猛的。
意图是主要活动的一个子类,所以没有必要明确指定。这意味着我们可以称之为EXTRA_MESSAGE
,而不是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);
这解决了我的问题。从“MainActivity.EXTRA_MESSAGE”中为字符串消息代码行取出“MainActivity”对我来说是这样的。 – Tscott
我有同样的问题。在Android Studio中的说明“建设意向书”部分下,很容易错过这一行:
public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
确认这是包含在@覆盖在上面的MainActivity.java和你所有的设置:)
非常感谢。这在尝试了很多答案后有所帮助 –
你刚刚为我节省了很多时间:) –
错误来自MainActivity.java文件。
TextView tv = (TextView) findViewById(R.id.editText);
我在哪里(R.id.editText); .....系统放(R.id.edit_message);
edit_message是添加到文本框中的函数,但它位于(EditText)“代码块”下。对于Java而言,不确定代码块的调用方式,也不确定程序为什么将这些代码放入公共类中。希望这可以帮助。
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");
}
}
我有同样的错误消息:找不到符号变量activity_display_message
我解决它通过添加机器人:ID在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>
检查,如果你有这样的代码在MainActivity.java
:
public class MainActivity extends AppCompatActivity {
public static final String EXTRA_MESSAGE = "com.example.MyApplicationstart.MESSAGE";
“com.example.MyApplicationstart.MESSAGE”,其中“MyApplicationstart”是您项目的名称。
我也有同样的问题。得到了纠正的错误,当我替换错误行: -
EditText editText = (EditText) findViewById(R.id.editText2);
我有这个问题太多次试图做这个教程,并添加到这里唯一的答案,帮助我,这是删除MainActivity.
从MainActivity.EXTRA_MESSAGE
部分...
我也不得不导入DisplayMessageActivity.java
如下:
import static android.provider.AlarmClock.EXTRA_MESSAGE;
这彻底解决了我所有的错误和允许我继续教程。
不幸的是,将ViewGroup改为RelativeLayout对我来说并不适用。 = \ – Tscott