注册屏幕Android

时间:2014-03-06 22:43:23

标签: android

我正在将注册屏幕作为我的应用程序中的第一页,在我放置的MainActivity.java中:

public class MainActivity extends Activity {

       private EditText  username=null;
       private EditText  password=null;
       private TextView attempts;
       private Button login;
       int counter = 3;
       @Override
       protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
          username = (EditText)findViewById(R.id.editText1);
          password = (EditText)findViewById(R.id.editText2);
          attempts = (TextView)findViewById(R.id.textView3);
          attempts.setText(Integer.toString(counter));
          login = (Button)findViewById(R.id.button1);
       }

       public void login(View view){
          if(username.getText().toString().equals("admin") && 
          password.getText().toString().equals("admin")){
          Toast.makeText(getApplicationContext(), "Redirecting...", 
          Toast.LENGTH_SHORT).show();
       }    
       else{
          Toast.makeText(getApplicationContext(), "Wrong Credentials",
          Toast.LENGTH_SHORT).show();
          attempts.setBackgroundColor(Color.RED);   
          counter--;
          attempts.setText(Integer.toString(counter));
          if(counter==0){
             login.setEnabled(false);
          }

       }}

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

在我放的xml页面中:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="92dp"
        android:text="username"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="36dp"
        android:text="password"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBaseline="@+id/textView1"
        android:layout_alignBottom="@+id/textView1"
        android:layout_marginLeft="30dp"
        android:layout_toRightOf="@+id/textView1"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/textView2"
        android:layout_alignLeft="@+id/editText1"
        android:ems="10"
        android:inputType="textPassword" />

    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editText2"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="72dp"
        android:text="attempts" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView3"
        android:layout_below="@+id/textView3"
        android:layout_marginTop="42dp"
        android:text="login" />

</RelativeLayout>

我写的错误是在编写时的java代码中:

username = (EditText)findViewById(R.id.editText1);

无法解析editText1或不是字段。 与editText2,textView3和button1

相同

请帮忙吗?

4 个答案:

答案 0 :(得分:1)

在布局文件中分配@+id/editText1之类的ID时,IDE通常应该为您在R.java中生成值。如果代码生成步骤由于某种原因没有发生或失败,那么R.id.editText1将不可用,您将得到您描述的错误。

您使用的是哪个IDE?你能清理和重建项目吗?

您是否看过R.java,看看您的场地是否在那里?对于任何布局文件中的每个ID,您应该看到在那里生成的常量,如下所示:

public final class R {
  (...)

  public static final class id {
    public static final int editText1 = ...;
  }

  (...)
}

答案 1 :(得分:0)

首先,save文件(布局),然后尝试clean and build the project

然后: 将声明更改为:

  private EditText  username;
       private EditText  password;

同时更改l ogin method的名称,因为您有button loginloginFunction,例如,

 public void loginFunction(View view)

将此方法与login中的按钮setOnclickListener相关联:

login.setOnclickListener(loginFunction)

答案 2 :(得分:0)

首先清理并重建您的项目。如果没有运气,请尝试以下方法。

有时在缺少结束标记或类似内容时会在xml布局文件中发生这种情况。只需仔细检查你的xml,确保你没有忘记一些东西。也 check <?xml version="1.0" encoding="utf-8"?>位于布局文件的顶部。

答案 3 :(得分:0)

我有自己的解决方案。希望对你有帮助。

Project->Clean中,我选择“清除下面选择的项目”,选择我的项目并选中“立即开始构建”,“仅构建所选项目”。

然后转到Window->Preferences->General->Keys,搜索“Build clean”并为此命令输入我自己的绑定。例如, Ctrl + D

然后,当我按 Ctrl + D 并输入我已清理并构建。