Escolar Documentos
Profissional Documentos
Cultura Documentos
Exemplo
Navegação com passagem de parâmetros
É muito comum que ao navegarmos entre duas activities no Android seja
necessário trafegar dados entre elas. Para isso utilizamos a classe Bundle, que irá
encapsular as informações que queremos transportar entre as activities a “anexamos”
ao nosso Intent.
1) Dado que queremos enviar para a segunda tela - String email = "email@mail.com";
2) Instância da classe Bundle - Bundle bundle = new Bundle();
3) Adicionar o dado no bundle - bundle.putString("email", email);
4) Criar o intent para a navegação entre as telas: Intent in = new Intent(Origem.this,
Destino.class);
5) Adicionar ao bundle ao intent - in.putExtras(bundle);
6) Executar a ação de navegação - startActivity(in);
Recuperar dados enviados por parâmetro
1) Recuperar os dados bundle através do Intent - Bundle bundle =
getIntent().getExtras();
2) Obter o dado armazenado como texto no bundle a partir do seu identificador
("email") - String email = bundle.getString("email");
3) Exibir o dado na tela - mensagem.setText("Olá " + email);
Conhecendo as Splash Screens
O Android nos oferece a classe Handler que, internamente, trabalha com Threads
assim como no Java, porém, nos provê alguns métodos capazes de nos ajudar nessa
situação. Portanto, vamos instanciá-la:
Arraste as imagens para a pasta drawable e clique em ok para copiar. O nome das
imagens deve começar com letra minúscula, não possuir espaços ou caracteres especiais.
Colocando imagem centralizada na Tela01
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/sorvete" />
</androidx.constraintlayout.widget.ConstraintLayout>
Criando a Tela02
Clique com o botão direito na pasta exemple dentro do pacote java ->
com.exemple, selecione new, Activity, Empty Views Activity, escreva Tela02, selecione o
java e finalize
Retirando a barra de título no java e codificando a tela de splash
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Arraste um textView, ajuste suas alças do constraintLayout como está na imagem abaixo
e renomeie a variável para textView1
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:gravity="center"
android:text="Qual Sorverte deseja comprar?"
android:textSize="40dp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
Código do TextInputView
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout3"
android:layout_width="409dp"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView1">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/txt1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Digite uma das opções abaixo " />
</com.google.android.material.textfield.TextInputLayout>
Arraste mais um TextInputLayout, grude ele no bottom do TextInputLayout criando
anteriormente.
Código do TextInputView
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout4"
android:layout_width="409dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout3">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/txtv2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Quantidade" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="Comprar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout4" />
Código do ListView
<ListView
android:id="@+id/listView1"
android:layout_width="409dp"
android:layout_height="273dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
android:gravity="center"
android:text="Qual Sorverte deseja comprar?"
android:textSize="40dp"
android:textStyle="bold"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout3"
android:layout_width="409dp"
android:layout_height="wrap_content"
android:layout_marginTop="60dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView1">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/txt1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Digite uma das opções abaixo " />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout4"
android:layout_width="409dp"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout3">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/txtv2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Quantidade" />
</com.google.android.material.textfield.TextInputLayout>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:text="Comprar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textInputLayout4" />
<ListView
android:id="@+id/listView1"
android:layout_width="409dp"
android:layout_height="273dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button" />
</androidx.constraintlayout.widget.ConstraintLayout>
Criando modelo para inflar(colocar) na nossa lista
Agora vamos criar um Layout sem o código java. Para isso clique com o botão direito em
layout, new Layout Resource File
Agora vamos trocar o layout principal para LinearLayout. Para isso clique com o botão
direito no ConstraintLayout, Convert view, selecione LinearLayout e clique em Apply.
Acrescente uma orientação para o LinearLayout. Digite android:orientation=“horizontal”
<TextView
android:id="@+id/texto1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="30sp"
android:gravity="right"
android:textStyle="bold"
android:text="1°)" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_weight="1"
android:adjustViewBounds="false"
android:cropToPadding="false"
android:scaleType="centerInside"
app:srcCompat="@drawable/sor_chiclete" />
<TextView
android:id="@+id/texto2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="30sp"
android:text="Chiclete - R$5,00" />
</LinearLayout>
Criando nossa classe Adaptadora
package com.example.appsorvete;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
Context context;
String listpreco[];
int listImages[];
LayoutInflater inflater;
@Override
public Object getItem(int i) {
return null;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
view = inflater.inflate(R.layout.modelo_lista, null);
TextView texto1=(TextView) view.findViewById(R.id.texto1);
TextView texto2=(TextView) view.findViewById(R.id.texto2);
ImageView img = (ImageView)
view.findViewById(R.id.imageView2);
texto1.setText(""+i);
texto2.setText(listpreco[i]);
img.setImageResource(listImages[i]);
return view;
}
}
Agora abra o código java da Tela02, crie os vetores de imagem e valores, mapeie o
listView dentro do método onCreate, instancie o AdapImg e passe as listas e a tela no construtor
do objeto
package com.example.appsorvete;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ListView;
https://youtu.be/aUFdgLSEl0g?si=Q57mHEA3Rvdx4lPN