============================== Exemplo ListView MainActivity.java

Documentos relacionados
Login. Criar uma nova Activity. Login. Luiz Eduardo Guarino de Vasconcelos

Programação de Dispositivos Móveis

Tutorial Android Speech

Primeira Aplicação Android Olá Mundo. Prof. Fellipe Aleixo

Módulo 4 - Interface Gráfica Gerenciadores de Layout. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Firebase. Acesse o site Acesse o menu Go to Console. Acesse com uma conta Google ou crie uma conta.

Retrofit. Criar um novo projeto. Selecionar a API. Retrofit para consumir Web Service Luiz Eduardo Guarino de Vasconcelos

Programação para Android. Aula 08: Persistência de dados SQL

Módulo 2 - Novas Activities Android. Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ

Computação Móvel Persistência (Ref. Cap. 18)

Programação de Dispositivos Móveis

Android Layout Manager. Ivan Nicoli

Computação Móvel ActionBar e Temas (Ref. Cap. 5)

Programação para Dispositivos Móveis. Banco de Dados (SQLite)

Programação para Dispositivos Móveis

ANDROID APRENDIZ. Um guia para iniciantes Crie seu primeiro aplicativo Android

Comunicação entre A0vidades

Módulo 3 - Intenções. SECAP 2014 Prof. Rone Ilídio - UFSJ

Introdução ao Android. SECAP 2014 Prof. Rone Ilídio - UFSJ

Programa de Dispositivos Móveis

Computação Móvel Activity (Ref. Cap. 4)

TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS

Programação para a Plataforma Android Aula 4. Objetos Gráficos

Google Android. Uma abordagem prática e didática. Rafael Guimarães Sakurai, Diogo Carleto, erodrigo Cascarrolho

Google Android. Uma abordagem prática e didática. Rafael Guimarães Sakurai. Esse livro está à venda em

Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística.

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

Android Banco de Dados. Ivan Nicoli

1. SQLite No Android 2. API de Acesso Listagem 1 SQLiteDatabase SQLiteOpenHelper Listagem 1 Android Studio SQLiteOpenHelper Android Studio

2ª edição Nelson Glauber de Vasconcelos Leal

Programa de Dispositivos Móveis

Log, Ciclo de Vida e Diálogos. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Android Activity. Ivan Nicoli

Apresentação de um Processo Cria4vo de Desenvolvimento de uma App Android. Realização de Dinâmica Hands- On para Construção de uma App Android

PROPOSTA DE UM PADRÃO DE PROJETO PARA ANDROID UTILIZANDO A WEB

Android Core. Felipe Silveira felipesilveira.com.br. Aula 6

Prof: Ricardo Quintão Site:

Computação Móvel Gerenciadores de Layout (Ref. Cap. 6)

<uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.

Google Android. Componentes Gráficos

Nelson Glauber de Vasconcelos Leal

Computação Móvel Conceitos Básicos do Android Ref. Capítulo 3

Programação para a Plataforma Android Aula 16. Fragmentos

Projeto GoHome Tutorial Sobre o serviço do Google Maps no Android

Introdução ao Desenvolvimento para Sistema Operacional Android

Consumindo Web Services (WS) em Aplicações Android. Prof. Fellipe Aleixo

Programação para Dispositivos Móveis

Código-Fonte da Prática 02

HCI Summer Workshop. Android #1. Tiago Guerreiro.

PROGRAMAÇÃO COM ANDROID NA ÁREA DA ENGENHARIA CARTOGRÁFICA: ALGUNS EXEMPLOS

Seu App na TV: Desenvolvimento para ChromeCast

TELA PRINCIPAL DO PROJETO FCV

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Exercícios de Revisão Java Básico

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Armazenamento Persistente de Dados

Desenvolvimento com Android Studio. Aula 02 Widgets, Manipulação de Dados e Programação de Eventos

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual

Programando Passo-a-Passo 2ª Edição De : Luciano Alves (lucianopascal@yahoo.com.br)

Comunicação via Sockets

Programação para Android. Aula 05: Estilos e temas; galeria de imagens

Programação para Dispositivos Móveis. Activity e Intent

Desenvolvimento Android.

Chromecast. Seu aplicativo na TV. Ivan de

Android Binding. Implementando o padrão de projeto MVVM com MVVM_. Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android

Programação para Android. Aula 06: Activity, menus e action bar

Computação Móvel Interface Gráfica - View (Ref. Cap. 7)

Transcrição:

FACULDADE DE TECNOLOGIA SENAC PELOTAS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas Tópicos Avançados em ADS Edécio Fernando Iepsen ============================== Exemplo ListView --------------------------- MainActivity.java import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.widget.adapterview; import android.widget.listview; import android.widget.toast; import java.util.arraylist; import java.util.list; public class MainActivity extends AppCompatActivity implements AdapterView.OnItemClickListener { List<Produtos> produtos; ProdutosAdapter adapter; ListView lista; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); // cria uma listview (via código) // lista = new ListView(this); // exibe esta listview na activity // setcontentview(lista); lista = (ListView) findviewbyid(r.id.lstprodutos); // instancia um produto e preenche alguns exemplos produtos = new ArrayList<Produtos>(); produtos.add(new Produtos("Batata", 10)); produtos.add(new Produtos("Iogurte", 15)); produtos.add(new Produtos("Leite", 24)); produtos.add(new Produtos("Cebola", 8)); produtos.add(new Produtos("Tomate", 12)); adapter = new ProdutosAdapter(this, produtos); lista.setadapter(adapter); lista.setonitemclicklistener(this); public void onitemclick(adapterview<?> adapterview, View view, int i, long l) { Produtos produto = (Produtos) adapterview.getitematposition(i); Toast.makeText(this, "Produto: " + produto.nome + " - Quant.: " + produto.quant, Toast.LENGTH_SHORT).show(); ------------------------------------------- activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" 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="br.com.edecio.listadeprodutos.mainactivity"> <ListView android:id="@+id/lstprodutos"

></ListView> </RelativeLayout> ------------------------------------------- Produtos.java public class Produtos { public String nome; public int quant; public Produtos(String nome, int quant) { this.nome = nome; this.quant = quant; ------------------------------------------ item_produto.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="match_parent"> android:id="@+id/txtnome" android:layout_margintop="10dp"/> android:id="@+id/txtquant" android:layout_margintop="10dp" android:layout_alignparentend="true" android:layout_alignparenttop="true"/> </RelativeLayout> ---------------------------------------- ProdutosAdapter.java import android.content.context; import android.view.layoutinflater; import android.view.viewgroup; import android.widget.baseadapter; import org.w3c.dom.text; import java.util.list; public class ProdutosAdapter extends BaseAdapter{ Context ctx; List<Produtos> produtos; public ProdutosAdapter(Context ctx, List<Produtos> produtos) { this.ctx = ctx; this.produtos = produtos; public int getcount() { return produtos.size(); public Object getitem(int i) { return produtos.get(i); public long getitemid(int i) { return i; public View getview(int i, View view, ViewGroup viewgroup) { // obtém um produto Produtos produto = produtos.get(i);

ViewHolder holder = null; if (view == null) { view = LayoutInflater.from(ctx).inflate(R.layout.item_produto, null); holder = new ViewHolder(); holder.txtnome = (TextView) view.findviewbyid(r.id.txtnome); holder.txtquant = (TextView) view.findviewbyid(r.id.txtquant); view.settag(holder); else { holder = (ViewHolder)view.getTag(); // "carrega" o arquivo de layout a ser "inflado" e obtém o seu elemento raiz (RelativeLayout) // View linha = LayoutInflater.from(ctx).inflate(R.layout.item_produto, null); // obtém as views deste arquivo de layout // TextView txtnome = (TextView) linha.findviewbyid(r.id.txtnome); // TextView txtquant = (TextView) linha.findviewbyid(r.id.txtq uant); // atribui os dados do produto para estas views holder.txtnome.settext(produto.nome); holder.txtquant.settext(string.valueof(produto.quant)); return view; static class ViewHolder { TextView txtnome; TextView txtquant; ============================== Exemplo Acesso a Web Service (ainda em arquivo texto) Neste aplicativo deve-se alterar o arquivo AndroidManifest.xml acrescentando a uses-permission abaixo. <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="br.com.edecio.gerentedeloja"> <uses-permission android:name="android.permission.internet"/> <application android:allowbackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsrtl="true" android:theme="@style/apptheme"> <activity android:name=".mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" 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" android:orientation="vertical" tools:context="br.com.edecio.gerentedeloja.mainactivity">

<Button android:id="@+id/btnconsulta" android:text="@string/consulta_total_do_dia" android:layout_margintop="10dp"/> android:id="@+id/txttotal" android:layout_margintop="20dp" android:textsize="20sp" /> </LinearLayout> package br.com.edecio.gerentedeloja; import android.support.v7.app.appcompatactivity; import android.os.bundle; import android.widget.button; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private Button btnconsulta; private TextView txttotal; protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); btnconsulta = (Button) findviewbyid(r.id.btnconsulta); txttotal = (TextView) findviewbyid(r.id.txttotal); btnconsulta.setonclicklistener(this); public void onclick(view view) { GetTotal gt = new GetTotal(txtTotal); gt.execute("http://10.0.2.2/loja/total.php"); package br.com.edecio.gerentedeloja; import android.os.asynctask; import java.io.bufferedinputstream; import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstream; import java.io.inputstreamreader; import java.net.httpurlconnection; import java.net.malformedurlexception; import java.net.url; public class GetTotal extends AsyncTask<String, Void, String> { private TextView txt; public GetTotal(TextView textview) { this.txt = textview; protected String doinbackground(string... strings) { HttpURLConnection urlconnection = null; String total = ""; try { URL url = new URL(strings[0]); urlconnection = (HttpURLConnection) url.openconnection(); int code = urlconnection.getresponsecode(); // ok. url válida if (code == 200) {

InputStream in = new BufferedInputStream(urlConnection.getInputStream()); if (in!= null) { BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(in)); String linha=""; while (( linha = bufferedreader.readline())!= null) { total = total + linha; in.close(); catch (MalformedURLException e) { e.printstacktrace(); catch (IOException e) { e.printstacktrace(); finally { urlconnection.disconnect(); return total; protected void onpostexecute(string s) { txt.settext(s);