PRÁTICA 3 – CONTEXT, ACTIVITY E LAYOUT BÁSICO
Objetivo:
Compreender as classes Context, Activity e Layout. Adicionar um menu.
Introdução:
Todas os aplicativos Android possuem pelo menos um Activity, que possui um Context e um Layout.
- Activity: uma tela (ou formulário) no seu aplicativo.
- Context: informações sobre a Activity.
- Layout: como é a organização de componentes dentro de um Activity.
Tarefa:
Compilar e entender os programas abaixo.
Programa 1 – Criando TextView e utilizando para mostrar a variável Context:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent; import android.widget.RelativeLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.layout); TextView textView = new TextView(getBaseContext()); // "this" também funciona! textView.setText(getBaseContext().getFilesDir().toString()); relativeLayout.addView(textView); TextView textView2 = new TextView(getBaseContext()); // "this" também funciona! textView2.setText(getBaseContext().getPackageName().toString()); textView2.setX(100); textView2.setY(100); relativeLayout.addView(textView2); } } |
Programa 2 – Criando um Layout para um menu. Crie um diretório “menu” dentro do diretório “res”, a seguir crie um arquivo “menumenu.xml” com este conteúdo:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/file" android:title="Abrir" > <!-- submenu --> <menu> <item android:id="@+id/primeira" android:title="Primeira" /> <item android:id="@+id/segunda" android:title="Segunda" /> </menu> </item> </menu> |
Programa 3 – Modificando o MainActivity para mostrar o menu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MotionEvent; import android.widget.RelativeLayout; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.meumenu, menu); return true; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } |
Programa 4 – Criando outra Activity: clique com o botão da direita em “app” –> “new” –> “activity” -> “empty”. Coloque o nome OutraActivity.
Adicione este código dentro de MainActivity:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
private void abreOutra() { Intent myIntent = new Intent(this, OutraActivity.class); startActivity(myIntent); } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection switch (item.getItemId()) { case R.id.segunda: abreOutra(); return true; default: return super.onOptionsItemSelected(item); } } |
Desafio: Coloque o mesmo menu na OutraActivity e faça com que volte para a primeira Activity quando pressionar primeira:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
package nome do seu pacote! // Esta linha deve ser mantida com o nome do pacote! package empty.ammsoft.empty; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.widget.Toast; public class OutraActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_outra); } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle item selection switch (item.getItemId()) { case R.id.primeira: finish(); return true; default: return super.onOptionsItemSelected(item); } } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.meumenu, menu); return true; } } |