Intent - представляет собой объект обмена сообщениями между
компонентами - одного
или разных приложений. Если взять аналогию с WEB страницами,
Intent по функциональности напоминают ссылки, с помощью которых можно
переходить как по страницам одного сайта, так и по другим. Как и с
помощью ссылок, при переходе
на другие страницы (в данном случае переходы на другие активности
Android, или окна) есть возможность передавать параметры (строки, числа)
другим активностям своего
приложения, или другим внешним приложениям (если внешние приложения это
разрешают).
Путь между активностями, Intent проходит через ActivityManager
Операционной Системы Android, а не на прямую.
Intent способен запускать процессы в Service - приложения которые не имеют графического представления, и работают в фоновом режиме. Также Intent используют для рассылки широковещательных сообщений, которые могут принимать любые приложения. Многие процессы в Android, ОС транслирует через широковещательные сообщения, которые можно читать если есть в этом необходимость.
В этом коде показывается пример использования Intent для перехода между активностями (окнами) одного приложения.
Дополнительная активность (следующее окно приложения при переходе):
Класс главной активности activity_main.java:
И класс дополнительной активности IntentActivity.java, на которую произведен переход:
Intent способен запускать процессы в Service - приложения которые не имеют графического представления, и работают в фоновом режиме. Также Intent используют для рассылки широковещательных сообщений, которые могут принимать любые приложения. Многие процессы в Android, ОС транслирует через широковещательные сообщения, которые можно читать если есть в этом необходимость.
В этом коде показывается пример использования Intent для перехода между активностями (окнами) одного приложения.
- <activity
- android:name=".IntentActivity"
- android:label="@string/app_name" />
- Где IntentActivity - это java класс, новой активности.
- Главная активность:
- <?xml version="1.0" encoding="utf-8"?>
- <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="com.ivarious.myapplication.MainActivity">
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Firsht Activity"
- android:id="@+id/textView2" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Next Activity"
- android:id="@+id/next"
- android:layout_below="@+id/textView2"
- android:layout_toEndOf="@+id/textView2"
- android:layout_marginTop="132dp" />
- <EditText
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/editText"
- android:layout_below="@+id/textView2"
- android:layout_alignParentStart="true"
- android:layout_marginTop="29dp"
- android:layout_alignEnd="@+id/next" />
- </RelativeLayout>
Дополнительная активность (следующее окно приложения при переходе):
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="match_parent"
- android:layout_height="match_parent">
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Second Activity"
- android:id="@+id/textView" />
- <Button
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Cencel"
- android:id="@+id/cencel"
- android:layout_gravity="center_horizontal" />
- </LinearLayout> layout_gravity="center_horizontal" />
Класс главной активности activity_main.java:
- package com.ivarious.myapplication;
- import android.content.Intent;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- public class MainActivity extends AppCompatActivity {
- private Button next;
- private EditText editText;
- private String str;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- next = (Button)findViewById(R.id.next);
- editText = (EditText)findViewById(R.id.editText);
- next.setOnClickListener(new View.OnClickListener(){
- @Override
- public void onClick(View v) {
- str = editText.getText().toString();
- Intent intent = new Intent(MainActivity.this, IntentActivity.class);
- intent.putExtra("name",str);
- startActivity(i);
- }});
- } }
И класс дополнительной активности IntentActivity.java, на которую произведен переход:
- package com.ivarious.myapplication;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.support.v7.app.AppCompatActivity;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- public class IntentActivity extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.intentactivity);
- Button cencel = (Button)findViewById(R.id.cencel);
- Intent intent = getIntent();
- String str = intent.getStringExtra("name");
- TextView txt = (TextView)findViewById(R.id.textView);
- txt.setText(str);
- cencel.setOnClickListener(new View.OnClickListener(){
- @Override
- public void onClick(View v) {
- finish();
- }});
- } }
Комментариев нет:
Отправить комментарий