Категории:

  • Программирование


  • Изобразительное искусство


  • Программирование встраиваемых систем


  • Компьютерная графика


  • WEB Разработка


  • Музыка


  • Инженерия


  • iVARIOUS


  • Mobil App


  • Android. Intent

    Android AppleIntent - представляет собой объект обмена сообщениями между компонентами - одного или разных приложений. Если взять аналогию с WEB страницами, Intent по функциональности напоминают ссылки, с помощью которых можно переходить как по страницам одного сайта, так и по другим. Как и с помощью ссылок, при переходе на другие страницы (в данном случае переходы на другие активности Android, или окна) есть возможность передавать параметры (строки, числа) другим активностям своего приложения, или другим внешним приложениям (если внешние приложения это разрешают). Путь между активностями, Intent проходит через ActivityManager Операционной Системы Android, а не на прямую.
    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();
    }});
    } }
    Android activity
    Читайте больше в категории: Mobil App

    2016-08-09 17:25:16



    Другие статьи:

    Maya. Операции Booleans

    Java. Интерфейсы

    WinAPI. HDC .

    UNGVAR 3D. Ужгород в паралельному вимірі

    Линии и пятна

    STM32

    WinAPI. Изображения

    WinAPI. Введение.

    2D. Рисование реалистичной воды

    Инженерия