我的java组件声明有一个未知的类,但我在我的xml文件中清楚地说明了新的id
content_user_response.xml
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Next"
android:id="@+id/gotomoodanalysis"
android:layout_below="@+id/frame4"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
UserResponse.java
package com.example.enxin.emotiontracker;
import android.support.annotation.IdRes;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class UserResponse extends AppCompatActivity {
Button gotomoodanalysis;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_response);
}
gotomoodanalysis = (Button)findViewById(R.id.next1);
}
我需要帮助。提前致谢
答案 0 :(得分:5)
您的代码应 onCreate
,因为在调用setContentView
时视图会膨胀:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_response);
gotomoodanalysis = (Button)findViewById(R.id.gotomoodanalysis);
}
答案 1 :(得分:2)
void setContentView(查看视图)
将活动内容设置为显式视图。放置此视图 直接进入活动的视图层次结构。它本身就是一个 复杂的视图层次。调用此方法时,布局 忽略指定视图的参数。
Android void onCreate(Bundle savedInstanceState)在活动开始时调用。
void onCreate(Bundle savedInstanceState)
是大多数初始化应该去的地方。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_response);
gotomoodanalysis = (Button)findViewById(R.id.gotomoodanalysis); // You should initialize in here
}
你应该阅读官方指南
https://developer.android.com/reference/android/app/Activity.html
答案 2 :(得分:1)
package com.example.enxin.emotiontracker;
import android.support.annotation.IdRes;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.view.View;
import android.widget.Button;
public class UserResponse extends AppCompatActivity {
Button gotomoodanalysis;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_response);
gotomoodanalysis = (Button)findViewById(R.id.gotomoodanalysis);
}
}