按钮ID未解决

时间:2016-06-07 13:18:19

标签: java android button

我的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);

}

我需要帮助。提前致谢

3 个答案:

答案 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);
    }

}