Сеилханова Р. Б


 Наше приложение меняет фон на выбранный. Значит, нам нужно создать цвета и их названия в файле strings.xml



бет102/112
Дата07.01.2022
өлшемі11,65 Mb.
#17516
түріПрограмма дисциплины
1   ...   98   99   100   101   102   103   104   105   ...   112
Байланысты:
Силлабус Android krmu 20

3. Наше приложение меняет фон на выбранный. Значит, нам нужно создать цвета и их названия в файле strings.xml. Как вы помните, этот файл находится в папке values, которая в свою очередь находится в папке res. Также создадим строку messages, которая нам понадобятся для диалогового окна.




Dialog

Settings

Выбрать фон



Хотите поменять фон?

#FF0000

#FFFF00

#00FF00

Красный

Жёлтый

Зелёный

Листинг 8.6. Файл strings.xml



4. Перейдем в файл MainActivity.java. Создайте следующие переменные:

private Button bgButton;

public RelativeLayout relativeLayout;

Context context;

Если компилятор подчеркивает тип и сообщает об ошибке, например, подчеркивает Context, наведите курсор на подчеркнутое слово: должно появиться контекстное меню, предлагающее варианты, как можно исправить ошибку. Выберете Import 'Context', чтобы импортировать библиотеку.

5. Теперь нужно описать, что будет происходить при нажатии на нашу кнопку.

Для начала свяжем объекты из activity_main.xml и переменные в MainActivity.java через id (в onCreate):

bgButton = (Button)findViewById(R.id.background_button);

relativeLayout = (RelativeLayout)findViewById(R.id.relativelayout);

Context - это объект, который предоставляет доступ к базовым функциям приложения.

Добавляем в код

context = MainActivity.this;

6. Теперь нужно добавить событие onClick и навесить на кнопку OnClickListener. Добавляем в заголовок класса MainActivity implements OnClickListener. Чтобы связать кнопку и Listener в onCreate пишем

bgButton.setOnClickListener(this);

Создадим теперь событие onClick

@Override

public void onClick(View v){

}

В этом объекте создаем собственно диалог и называем его:



AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle(R.string.message);


AlertDialog alert = builder.create();

alert.show();

Мы будем создавать диалоговое окно, предоставляющее пользователю выбор из списка. Для этого потребуется ещё одна переменная, которая сформирует список из имеющихся строк.

final CharSequence[] items = {

getText(R.string.red), getText(R.string.yellow), getText(R.string.green)

};

7. Сформируем собственно наш список и зададим еще один Listener, который будет менять цвет фона на выбранный:

builder.setItems(items, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int item) {

switch (item) {

case 0: { relativeLayout.setBackgroundResource(R.color.redColor);

break;}

case 1: {relativeLayout.setBackgroundResource(R.color.yellowColor);

break;}

case 2: {relativeLayout.setBackgroundResource(R.color.greenColor);

break;}

}

8. Осталось добавить в каждый case всплывающие окна Toast, и приложение полностью готово!

Toast.makeText(context, R.string.green, Toast.LENGTH_LONG).show();
package com.mypackage.dialog;
import android.app.Activity;

import android.app.AlertDialog;

import android.content.Context;

import android.content.DialogInterface;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.RelativeLayout;

import android.widget.Toast;


public class MainActivity extends Activity implements OnClickListener {
private Button bgButton;

public RelativeLayout relativeLayout;

Context context;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

bgButton = (Button) findViewById(R.id.background_button);

bgButton.setOnClickListener(this);

context = MainActivity.this;

relativeLayout = (RelativeLayout)findViewById(R.id.relativelayout);

}
@Override

public void onClick(View v) {
final CharSequence[] items = {getText(R.string.red) , getText(R.string.yellow),getText(R.string.green)

};
AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle(R.string.message);

builder.setItems(items, new DialogInterface.OnClickListener() {

public void onClick(DialogInterface dialog, int item) {

switch (item) {

case 0: { relativeLayout.setBackgroundResource(R.color.redColor);

Toast.makeText(context, R.string.red, Toast.LENGTH_LONG).show();

break;}

case 1: {relativeLayout.setBackgroundResource(R.color.yellowColor);

Toast.makeText(context, R.string.yellow, Toast.LENGTH_LONG).show();

break;}


case 2: {relativeLayout.setBackgroundResource(R.color.greenColor);

Toast.makeText(context, R.string.green, Toast.LENGTH_LONG).show();

break;}

}

}



});

AlertDialog alert = builder.create();

alert.show();

}

}



Листинг 8.7. Код файла MainActivity.java

Скриншоты работающего приложения






увеличить изображение
Рис. 8.3. Приложение "Dialog", запущенное на эмуляторе




увеличить изображение
Рис. 8.4. Диалоговое окно




увеличить изображение
Рис. 8.5. Выбран зеленый фон



Рис. 8.6. Приложение "Dialog", запущенное на устройстве


Достарыңызбен бөлісу:
1   ...   98   99   100   101   102   103   104   105   ...   112




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет