2013-07-04 160 views
1

我是Android新手。我正在开发一个简单的注册登录系统。在每个类中,每个R发生的错误都很多。错误是R无法解析为变量。其中一个类代码在这里R无法解析到变量

这里是我的代码

package com.UserAccounts; 

import android.app.Activity; 

import android.os.Bundle; 

import android.view.View; 

import android.widget.Button; 

import android.widget.EditText; 

import android.widget.Toast; 

public class SignUPActivity extends Activity 
{ 
    EditText editTextUserName,editTextPassword,editTextConfirmPassword; 
    Button btnCreateAccount; 

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

     // get Instance of Database Adapter 
     loginDataBaseAdapter=new LoginDataBaseAdapter(this); 
     loginDataBaseAdapter=loginDataBaseAdapter.open(); 

     // Get Refferences of Views 
     editTextUserName=(EditText)findViewById(R.id.editTextUserName); 
     editTextPassword=(EditText)findViewById(R.id.editTextPassword); 
     editTextConfirmPassword=(EditText)findViewById(R.id.editTextConfirmPassword); 

     btnCreateAccount=(Button)findViewById(R.id.buttonCreateAccount); 
     btnCreateAccount.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      String userName=editTextUserName.getText().toString(); 
      String password=editTextPassword.getText().toString(); 
      String confirmPassword=editTextConfirmPassword.getText().toString(); 

      // check if any of the fields are vaccant 
      if(userName.equals("")||password.equals("")||confirmPassword.equals("")) 
      { 
        Toast.makeText(getApplicationContext(), "Field Vaccant", Toast.LENGTH_LONG).show(); 
        return; 
      } 
      // check if both password matches 
      if(!password.equals(confirmPassword)) 
      { 
       Toast.makeText(getApplicationContext(), "Password does not match", Toast.LENGTH_LONG).show(); 
       return; 
      } 
      else 
      { 
       // Save the Data in Database 
       loginDataBaseAdapter.insertEntry(userName, password); 
       Toast.makeText(getApplicationContext(), "Account Successfully Created ", Toast.LENGTH_LONG).show(); 
      } 
     } 
    }); 
} 
    @Override 
    protected void onDestroy() { 
     // TODO Auto-generated method stub 
     super.onDestroy(); 

     loginDataBaseAdapter.close(); 
    } 
} 
+0

可能重复的[R无法解析 - Android错误](http://stackoverflow.com/questions/885009/r-cannot-be-resolved-android-error) – Simon

回答

2

如果您的课程与声明的应用程序包不在同一个包中清单,你需要导入你的应用程序的类R。该形式应该是

import your_app_package_name_as_defined_in_the_manifest.R; 

请注意,如果你在任何项目的资源文件有错误,也不会产生R.java文件和R类将不存在。如果是这种情况,请解决资源文件错误,并且未定义的类错误将会消失。

+0

谢谢你的友好解释 – user2502561

0

您需要导入yourpackage.R则错误得到解决......我认为它会像进口com.UserAccounts一些事情。 R

1

检查你没有在你的res文件夹的错误,然后进行清理你的项目(项目 - >清洁)

0

第一我是“进口your_app_package_name_as_defined_in_the_manifest.R;”之后我按下Project - > Clean,然后完成。谢谢!

0

将我自己的资源文件导入到我自己的包中是我想要做的最后一件事。你不应该 诉诸这个国际海事组织! (但是,我已经诉诸于此!Hypocrite!)

我有这个问题无数次,它是由我的XML文件相关的不同事情引起的。

检查: *您是否在任何onCreatView()方法中调用了Inflator.inflate ... R.id.my_resource.xml中的拼写错误。

*请看布局编辑器中的'设计'选项卡。检查他们都指向相同的Android版本。像23等。

*在布局编辑器中检查您正在使用的主题。

*有时,您可能在xml中没有指向包含其他xml文件的Include标签。 *请继续关注xml和充气器,有时给定的布局似乎没有 问题,用红线表示。

*如果仍然无法摆脱问题,请在其他资源文件中查找拼写错误和错误。

*您可能还必须在每次更改时运行“清洁”。

*休息一下,稍后再回来。