0

所以我试图为我的应用程序创建一个登录页面,我正在 Android Studio 上实现它,但它收到一个错误,提示无法解析 setContentView 中的符号。几个小时以来,我一直在振作起来,但我仍然无法弄清楚它有什么问题。setContentView(R.layout.activity_main); 就在这一行,它说 activity_main 不能解析为变量,即使我命名我的 xml 文件与它完全相同。这是我的代码,

package com.example.tieulyphidep.treasurehunters;

import android.app.ActionBar;
import android.content.Intent;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.R;

public class login extends ActionBarActivity implements View.OnClickListener{


    Button bLoggin,buttonSignup;
    EditText EditTextUserName, EditTextPassword;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        bLoggin = (Button) findViewById(R.id.buttonLogin);
        buttonSignup = (Button) findViewById(R.id.buttonSignup);
        EditTextUserName =(EditText) findViewById(R.id.EditTextUserName);
        EditTextPassword =(EditText) findViewById(R.id.EditTextPassword);

        buttonLogin.setOnClickListener(this);
        buttonSignup.setOnClickListener(this);


    }
    @Override
    public void onClick(View v) {
    switch(v.getId()){
        case R.id.buttonLogin:
            break;
        case R.id.buttonSignup:
            startActivity(new Intent(this, register.class));
            break;
    }
    }


}
4

2 回答 2

3

您将 R 导入为import android.R;,但您想导入com.example.tieulyphidep.R

只需删除行,import android.R;Android Studio 会建议您导入好的行。

另请注意,类应以大写字母开头并以母类结尾,例如 LoginActivity。

于 2015-11-14T22:56:00.070 回答
0

你的 layout.xml 中有一个名为 的布局文件activity_main吗?这段代码:

setContentView(R.layout.activity_main);

基本上是在说,“嘿,我是一个 java 类。我想在我的布局目录中看起来像这个文件:activity_main”

现在,如果你没有activity_main,你肯定会得到一个错误。

如果您的布局中已经有该activity_main文件,我建议您采取以下几个步骤:

  • 清理你的项目:Build->Clean Project
  • 重建你的项目Build->Rebuild project
  • 重启安卓工作室

我也注意到了这一点:

import android.R;

你不应该导入那个。

这是您的代码应如下所示:

package com.USERNAME.loginregister;

import android.app.AlertDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class Login extends ActionBarActivity implements View.OnClickListener {
    Button bLogin;
    TextView registerLink;
    EditText etUsername, etPassword;

    UserLocalStore userLocalStore;

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

        bLogin = (Button) findViewById(R.id.bLogin);
        etUsername = (EditText) findViewById(R.id.etUsername);
        etPassword = (EditText) findViewById(R.id.etPassword);
        registerLink = (TextView) findViewById(R.id.tvRegisterLink);

        bLogin.setOnClickListener(this);
        registerLink.setOnClickListener(this);

        userLocalStore = new UserLocalStore(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.bLogin:
                String username = etUsername.getText().toString();
                String password = etPassword.getText().toString();

                User user = new User(username, password);

                authenticate(user);
                break;
            case R.id.tvRegisterLink:
                Intent registerIntent = new Intent(Login.this, Register.class);
                startActivity(registerIntent);
                break;
        }
    }

根据您给我的链接,这是完整的项目代码:

https://github.com/tonikami/LoginRegister

祝你好运,

{Ruchir}
于 2015-11-14T22:57:47.503 回答