рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдирд╛ред рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЙрджреНрдпреЛрдЧ рдореЗрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдЦрд░рд╛рдм рдбрд┐рдЬрд╝рд╛рдЗрди рд╡рд╛рд▓рд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрднреА-рдХрднреА рд╕рдВрднрд╛рд╡рд┐рдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрд╛рдлреА рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдПрдХ рд╕рдХреНрд╖рдо рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдмрд╛рддрдЪреАрдд рдХрд╛ рдордиреЛрд╡рд┐рдЬреНрдЮрд╛рди рд╣реИ, рдЬреЛ рдкреНрд░рднрд╛рд╡ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЖрдЗрдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ - рд▓реЙрдЧрд┐рди + рдкрд┐рди рдлрд╝реЙрд░реНрдо рдХрд╛ рдирд┐рд░реНрдорд╛рдг рд╢реБрд░реВ рдХрд░реЗрдВ, рдФрд░ рдПрдХ рдмрджрд▓рд╛рд╡ рдХреЗ рд▓рд┐рдП рд╣рдо рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдиреАрдореЗрд╢рди рдкреНрд░рднрд╛рд╡ рдЬреЛрдбрд╝реЗрдВрдЧреЗред
рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд░рд▓ рдХреЛрдб рд╣реИ:
package com.google.android.hello;
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroid extends Activity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
}
}
рд╣рдо рдирд┐рдореНрди рдкрд░рд┐рдгрд╛рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ:

рдпрд╣ рдХреИрд╕реЗ рд╣реБрдЖ? рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред SetContentView () рдХрдорд╛рдВрдб - рдХреНрд▓рд╛рд╕ рдХреА рд╡рд░реНрддрдорд╛рди рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд▓реЗрдЖрдЙрдЯ рдХреЛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рд▓реЗрдЖрдЙрдЯ рд╣рдорд╛рд░реЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд╡рд┐рд╡рд░рдг рд╣реИред рд╣рдорд╛рд░реЗ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП, рд╣рдо Layout.main рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рд╡рд┐рд╡рд░рдг main.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╣реИ, рдФрд░ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рд▓реЗрдЖрдЙрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд░реЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИред

рдЕрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ main.xml рдлрд╝рд╛рдЗрд▓ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ

рдЫрд╡рд┐ рддрддреНрд╡реЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рджрд┐рдЦрд╛рддреА рд╣реИред рдореБрдЦреНрдп LinearLayout рддрддреНрд╡ рдореЗрдВ рдЕрдиреНрдп рд╕рднреА рддрддреНрд╡ (TextView, EditText) рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЙрдиреНрд╣реЗрдВ рдЙрд╕реА рдХреНрд░рдо рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рддрддреНрд╡ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рд╕реНрдХреНрд░реАрди рдХреЗ рдХрд┐рдирд╛рд░реЛрдВ рд╕реЗ рдЗрдВрдбреЗрдВрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ: рдкреИрдбрд┐рдВрдЧ = 10 рдбрд┐рдкред рд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЗ рд▓рд┐рдП, рдореИрдВ main.xml рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЙрд╕рдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд░реВрдк рдореЗрдВ рджреВрдВрдЧрд╛:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="#c7c7c7"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dip">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Login" />
<EditText
android:maxLines="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
id="@+id/login" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Pin code" />
<EditText
android:maxLines="1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:password="true"
id="@+id/pin" />
рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдЖрдЗрдП рдЕрдкрдиреЗ рд░реВрдк рдореЗрдВ рд╢реЗрдХ рдкреНрд░рднрд╛рд╡ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗрдВред рдкреНрд░рднрд╛рд╡ рдХрд╛ рд╕рд╛рд░ рдПрдиреАрдореЗрд╢рди рд╣реИ, рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдХ рдкрд┐рди рдХреЛрдб рджрд░реНрдЬ рдХрд░рддрд╛ рд╣реИ, рдЪрд╛рд░ рд╡рд░реНрдгреЛрдВ рдХрд╛ рдирд╣реАрдВ, рддреЛ рдЗрдирдкреБрдЯ рд╡рд┐рдВрдбреЛ рд╣рд┐рд▓рддреА рд╣реИред рдпрджрд┐ рдЖрдк рдкрд┐рди рдХреЛрдб рд╕рд╣реА рдврдВрдЧ рд╕реЗ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЕрдЧрд▓реА рд╡рд┐рдВрдбреЛ рдкрд░ рдЬрд╛рдПрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдбреЗрдЯрд╛ рджрд░реНрдЬ рдХрд┐рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж рд╕рдХреНрд░рд┐рдп рд╣реЛред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЧрддрд┐рд╡рд┐рдзрд┐ рд╡рд░реНрдЧ рдореЗрдВ, рджреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдБ:
EditText editLogin;
EditText editPassword;
рд╣рдо рдЙрдиреНрд╣реЗрдВ id рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ main.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдФрд░ рд╕реЗрдЯрдСрдирдХреНрд▓рд┐рдХрдХреНрд▓рд┐рдХрд╕реНрдЯрдирд░ () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬреЛ рдЗрдирдкреБрдЯ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реИред
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
editLogin = ((EditText) this.findViewById(R.id.login));
editPin = ((EditText) this.findViewById(R.id.pin));
editPin.setOnClickListener(this);
}
рдЖрдЧреЗ, рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╡рд┐рд▓рдВрдм рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рднреА рдХреЛрдб рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рджреВрдВрдЧрд╛ред
package com.google.android.hello;
//
import android.app.Activity;
import android.app.NotificationManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.EditText;
public class HelloAndroid extends Activity implements View.OnClickListener{
EditText editLogin;
EditText editPin;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
editLogin = ((EditText) this.findViewById(R.id.login));
editPin = ((EditText) this.findViewById(R.id.pin));
editPin.setOnClickListener(this);
}
public void onClick(View v) {
// , xml shake.xml
Animation shake = AnimationUtils.loadAnimation(this, R.anim.shake);
//
NotificationManager nm = (NotificationManager)
getSystemService(NOTIFICATION_SERVICE);
// pass
String pass = editPin.getText().toString();
// 4
if( pass.length() == 4)
{
// , - "Welcome + "
nm.notifyWithText(R.id.login,
"Welcome "+editLogin.getText().toString(),
NotificationManager.LENGTH_SHORT, null);
//
Intent intent = new Intent();
intent.setClass(HelloAndroid.this, WelcomeAndroid.class);
startActivity(intent);
// Activity
finish();
}
else
{
// -
editPin.startAnimation(shake);
// "Wrong pin, must be 4 digits"
nm.notifyWithText(R.id.login,
"Wrong pin, must be 4 digits",
NotificationManager.LENGTH_SHORT, null);
//
editPin.setText("");
}
}
рдЖрдЗрдП рд╣рдо рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдзреНрдпрд╛рди рджреЗрдВред рдЗрдВрдЯреЗрдВрдЯ рдХреНрд▓рд╛рд╕, рдЗрд╕рдХреА рдорджрдж рд╕реЗ рдПрдХреНрдЯрд┐рд╡рд┐рдЯреА рд╡рд┐рдВрдбреЛ рдХреЗ рдмреАрдЪ рдмрджрд▓рд╛рд╡ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдо рдПрдХ рдирдИ рд╡рд┐рдВрдбреЛ рд▓реЙрдиреНрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╣рдо рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╡рд░рдг рдмрдирд╛рддреЗ рд╣реИрдВ wel_android.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="#c7c7c7"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dip">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Welcome Android" />
рддрджрдиреБрд╕рд╛рд░, рдЗрд░рд╛рджреЗ .setClass (HelloAndroid.this, WelcomeAndroid.class) рд╕рдВрдХреНрд░рдордг рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ startActivity (рдЗрд░рд╛рджрд╛) рдлрд╝рдВрдХреНрд╢рди рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред
4-рд╡рд░реНрдг рдкрд┐рди рдХреЛрдб рджрд░реНрдЬ рдХрд░рддреЗ рд╕рдордп рдФрд░ рд▓реЙрдЧрд┐рди рдХрд░реЗрдВ, рдирд┐рдореНрди рд╡рд┐рдВрдбреЛ рдкрд░ рдЬрд╛рдПрдВ:

рдПрдиреАрдореЗрд╢рди рдХреЗ рд▓рд┐рдП xml рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдФрд░ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд░рд┐рд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдПрдирд┐рдореЗрдЯреЗрдб рдлрд╝реЛрд▓реНрдбрд░ рдФрд░ рдЙрд╕рдореЗрдВ рджреЛ рдлрд╛рдЗрд▓реЗрдВ рдмрдирд╛рдПрдБ:
cycle_7.xml
<?xml version="1.0" encoding="utf-8"?>
<CycleInterpolator
xmlns:android=http://schemas.android.com/apk/res/android android:cycles="7" />
shake.xml
<?xml version="1.0" encoding="utf-8"?>
<translate
xmlns:android=http://schemas.android.com/apk/res/android android:fromXDelta="0"
android:toXDelta="10"
android:duration="1000"
android:interpolator="@anim/cycle_7" />
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ AndroidMainfest.xml рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рди рднреВрд▓реЗрдВ:
<activity class=".WelcomeAndroid" android:label="@string/app_name">
рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдЗрдВрдЯрд░рдлреЗрд╕ рдФрд░ рдмрджрд▓рд╛рд╡ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдВрдЧреЗ, рдЙрдирдореЗрдВ рдореИрдВ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреА рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдВрдЧрд╛, рдЗрд╕рд▓рд┐рдП рдзреНрдпрд╛рди рд╕реЗ рдЗрди рдореВрд▓ рдмрд╛рддреЗрдВ рдпрд╛рдж рд░рдЦреЗрдВ, рдлрд┐рд░ рдореИрдВ рдЙрди рдкрд░ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдФрд░ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред