Северный (Арктический) федеральный университет им. М.В. Ломоносова
Опубликован: 10.04.2014 | Доступ: свободный | Студентов: 6851 / 1253 | Длительность: 14:18:00
Специальности: Программист
Самостоятельная работа 4:

Создание многоэкранного приложения

< Лекция 4 || Самостоятельная работа 4: 12345 || Лекция 5 >

6. Теперь осталось добавить всплывающее окно Toast, которое будет показывать, какой элемент мы выбрали. Этот виджет можно импортировать так же, как и предыдущие. Нам потребуется метод makeText(), у которого есть три параметра: контекст приложения, текстовое сообщение и продолжительность времени показа уведомления.

Toast.makeText(getApplicationContext(), "Вы выбрали " + parent.getItemAtPosition(position).toString(),Toast.LENGTH_SHORT).show();
    

Полные листинги файлов проекта, в которых были сделаны изменения, см. ниже.

package com.mypackage.multiscreen;

import android.os.Bundle;
import android.view.View;
import android.app.ListActivity;
import android.content.Intent;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Toast;
 
public class MultiScreenMainActivity extends ListActivity{
 
     String[] islands = { "Канары", "Курилы", "Мальдивы", "Филиппины"};
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
     
  
      ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, islands);
      setListAdapter(adapter);
       
      OnItemClickListener itemListener = new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                
                switch (position) {
                case 0:
                	Intent intent = new Intent(MultiScreenMainActivity.this, Canari.class);
    		        startActivity(intent); 
                    break;
                case 1:
                	Intent intent1 = new Intent(MultiScreenMainActivity.this, Curili.class);
    		        startActivity(intent1); 
                    break;
                case 2:
                	Intent intent2 = new Intent(MultiScreenMainActivity.this, Maldivi.class);
    		        startActivity(intent2); 
                    break;
                    
                case 3:
                	Intent intent3 = new Intent(MultiScreenMainActivity.this, Philippini.class);
    		        startActivity(intent3); 
                    break;
                }   
                Toast.makeText(getApplicationContext(), "Вы выбрали " + parent.getItemAtPosition(position).toString(),
                        Toast.LENGTH_SHORT).show();
            }
        };
        getListView().setOnItemClickListener(itemListener);
    }   
}
    
Листинг 8.1. Файл MultiScreenMainActivity.java

package com.mypackage.multiscreen;
import android.app.Activity;
import android.os.Bundle;

public class Canari extends Activity 
{
    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.canari);
    }
}
    
Листинг 8.2. Файл Canari.java

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dip" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="186dp"
        android:src="@drawable/canari" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="80dp"
        android:text="@string/enjoy"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>
    
Листинг 8.3. Файл canari.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">Куда бы поехать в отпуск?</string>
    <string name="action_settings">Settings</string>
    <string name="enjoy">Enjoy yourself!</string>
    <string name="can">Канары</string>
    <string name="phil">Филиппины</string>
    <string name="cur">Курилы</string>
    <string name="mal">Мальдивы</string>
</resources>
    
Листинг 8.4. Файл strings.xml
Приложение "Куда бы поехать в отпуск?", запущенное на эмуляторе

увеличить изображение
Рис. 8.1. Приложение "Куда бы поехать в отпуск?", запущенное на эмуляторе
Приложение "Куда бы поехать в отпуск?", запущенное на устройстве

увеличить изображение
Рис. 8.2. Приложение "Куда бы поехать в отпуск?", запущенное на устройстве
< Лекция 4 || Самостоятельная работа 4: 12345 || Лекция 5 >
Марат Нуриджанян
Марат Нуриджанян

Пример: Скачать среду можно с сайта для разработчиков Android (http://developer.android.com/sdk/index.html).

Там скачать можно только Android Studio

Владимир Каункин
Владимир Каункин

В самостоятельной работе 2 в примере решения задания некорректно загадывается число (в двух местах), выбирая случайное целое число из диапазона [0, 99] вместо [1, 100], как того требует условие. Кроме того, загадывание числа всё таки лучше вынести в отдельный метод, как мне кажется.