使用findViewById方法时出错

时间:2017-01-25 21:05:35

标签: android android-studio android-resources

我尝试使用findViewById()方法为我创建的按钮分配操作,但它给了我错误:

findViewById(int)中的

android.support.v7.app.AppCompatActivity无法应用于(android.widget.Button)

行:

buttonStudentAccess = (Button) findViewById(buttonStudentAccess);
buttonGuestAccess = (Button) findViewById(buttonGuestAccess);

我的代码如下:

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;

public class UserTypeSelection extends AppCompatActivity implements View.OnClickListener{

private Button buttonStudentAccess;
private Button buttonGuestAccess;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_type_selection);

    buttonStudentAccess = (Button) findViewById(buttonStudentAccess);
    buttonGuestAccess = (Button) findViewById(buttonGuestAccess);

    buttonStudentAccess.setOnClickListener(this);
    buttonGuestAccess.setOnClickListener(this);
}

@Override
public void onClick(View view) {
    if (view == buttonStudentAccess) {
}
    if (view == buttonGuestAccess) {
        //startActivity(new Intent(this, MainActivity.class));
    }
}

相应的xml文件包含按钮

<Button
    android:text="Guest"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/buttonStudentAccess"
    android:layout_alignLeft="@+id/buttonStudentAccess"
    android:layout_alignStart="@+id/buttonStudentAccess"
    android:layout_marginTop="30dp"
    android:id="@+id/buttonGuestAccess"
    android:layout_alignRight="@+id/buttonStudentAccess"
    android:layout_alignEnd="@+id/buttonStudentAccess" />

<Button
    android:text="Student"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="30dp"
    android:id="@+id/buttonStudentAccess"
    android:layout_below="@+id/textView2"
    android:layout_centerHorizontal="true" />

我使用相同的语法为我的登录和注册类中的按钮创建和分配操作,但它没有创建此错误。感谢任何帮助,谢谢

2 个答案:

答案 0 :(得分:4)

您需要指定从哪里获取ID“buttonStudentAccess”。所以这里是你如何找到视图:

buttonStudentAccess = (Button) findViewById(R.id.buttonStudentAccess);

要指定按钮或任何其他视图位于“资源”包中,请将其称为R.id指定您要使用其ID获取视图。

答案 1 :(得分:2)

buttonStudentAccess = (Button) findViewById(R.id.buttonStudentAccess);
buttonGuestAccess = (Button) findViewById(R.id.buttonGuestAccess);