Criando um projeto de lista simples

Primeiros passos:

Onde baixar o Android Studio? Clique aqui para baixar

Criando um projeto com Lista

Vamos lá: Crie um novo projeto

Em seguida digite o nome do seu projeto no primeiro campo,no segundo o nome da empresa e por ultimo o local onde deseja salvar o seu projeto como na imagem abaixo. Depois clique em Next

Na proxima janela escolha a versão do Android que deseja trabalhar (nesse projeto estamos ultilizando a versão 6.0) Marshmallow

Em seguida clique em Next

Nessa janela podemos escolher o padrão da Activity (pré-definição/pré-programação do projeto) que iremos trabalhar.Deixaremos em Empty Activity.

Clique em Next

Em Activity Name deixaremos: MainAcitvity (que será o nome da nossa classe padrão).

Em Layout Name deixaremos: activity_main (que será o nome da nossa tela xml padrão).

E então clique em Finish.

Iremos criar o pacote model para adicionarmos as classes iniciais ,mas primeiro verifique se está na aba Android

Após isso, clique com o botão direito em Java, New e Package .

Verifique se está selecionado ...\app\src\main\java

Clicando em OK,irá aparecer uma nova janela ,adicione o nome do pacote(no nosso caso: model) e clique em OK.

Em seguida iremos criar a primeira classe: Pessoa

Adicione o nome: Pessoa e clique em OK

A classe Pessoa ficará da seguinte forma:


package model;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
public class Pessoa implements Serializable {
	static SimpleDateFormat SDF =new SimpleDateFormat("MM/dd/yyyy");
	private Integer id;
	private String nome;
	private ArrayList tarefas;
								
	public Pessoa() {
					
					}
								
	public Pessoa(Integer id, String nome) {
		this.id = id;
		this.nome = nome;
					}
								
	@Override
	public String toString() {
	return "Pessoa{" +
	"id=" + id +
	", nome='" + nome + '\'' +
	", tarefas=" + tarefas +
					'}';
							}
								
	public Integer getId() {
		return id;
					 }
								
	public void setId(Integer id) {
		this.id = id;
					 }
								
	public String getNome() {
		return nome;
					 }
								
	public void setNome(String nome) {
	 	this.nome = nome;
					 }
								
	public ArrayList getTarefas() {
	return tarefas;
					  }
								
	public void setTarefas(ArrayList tarefas) {
	this.tarefas = tarefas;
					  }
								
	public void adicionar(Tarefa tarefa){
	if (tarefas==null){
	tarefas = new ArrayList();
					  }
	tarefas.add(tarefa);
					  }
								
	public static String[]    conversao(String nome, ArrayList tarefas){
								
	 String vet[]=new String[tarefas.size()];
								
	for(int i=0;i  < tarefas.size();i++) {
								
	vet[i]= nome + "," + tarefas.get(i).getNomeTarefa() + "," +
	DF.format(tarefas.get(i).getDataTarefaFazer()) +"," +
	SDF.format(tarefas.get(i).getDataTarefaconclusao() )+ "," +
	tarefas.get(i).getStatus();
					}
	return vet;
				 }
			}
							

Caso apareceram esses erros é simples resolver , basta clicar em cima da palavra em vermelho com o botão esquerdo e apertar as teclas : Alt + Enter para solucionar o primeiro erro.

O segundo erro iremos solucionar criando a proxima classe: Tarefa . O processo é o mesmo da classe Pessoa ,apenas o nome da classe irá mudar(Não esqueça que deve ser criada no mesmo pacote , no caso Model)

A classe Tarefa ficará da seguinte forma:


package model;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Tarefa implements Serializable {

    static SimpleDateFormat SDF2
            =new SimpleDateFormat("MM/dd/yyyy");

      private Integer tarefa;
      private String nomeTarefa;
      private Date dataTarefaFazer;
      private Date dataTarefaconclusao;
      private String status;
      private String descricao;

      private Pessoa pessoa;

      public Tarefa() {
       }

    public Tarefa(Integer tarefa, String nomeTarefa, Date dataTarefaFazer, Date dataTarefaconclusao, String status, String descricao) {
        this.tarefa = tarefa;
        this.nomeTarefa = nomeTarefa;
        this.dataTarefaFazer = dataTarefaFazer;
        this.dataTarefaconclusao = dataTarefaconclusao;
        this.status = status;
        this.descricao = descricao;
    }

    @Override
    public String toString() {
        return "Tarefa{" +
                "tarefa=" + tarefa +
                ", nomeTarefa='" + nomeTarefa + '\'' +
", dataTarefaFazer=" + SDF2.format(dataTarefaFazer) +
", dataTarefaconclusao=" + SDF2.format(dataTarefaconclusao) +
                ", status=" + status +
                ", descricao='" + descricao + '\'' +
                '}';
    }

    public Integer getTarefa() {
        return tarefa;
    }

    public void setTarefa(Integer tarefa) {
        this.tarefa = tarefa;
    }

    public String getNomeTarefa() {
        return nomeTarefa;
    }

    public void setNomeTarefa(String nomeTarefa) {
        this.nomeTarefa = nomeTarefa;
    }

    public Date getDataTarefaFazer() {
        return dataTarefaFazer;
    }

    public void setDataTarefaFazer(Date dataTarefaFazer) {
        this.dataTarefaFazer = dataTarefaFazer;
    }

    public Date getDataTarefaconclusao() {
        return dataTarefaconclusao;
    }

    public void setDataTarefaconclusao(Date dataTarefaconclusao) {
        this.dataTarefaconclusao = dataTarefaconclusao;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }

}
					

Agora iremos criar uma Activity chamada Relatorio para isso basta:

Clique com o botão esquerdo na pasta layout,depois em Activity e então Empty Activity

Em Activity Name colocaremos o nome: Relatorio

Clique em Finish

A classe Relatorio ficará com os seguintes dados:


package br.com.coti.mylista3;

import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;

import model.Pessoa;

public class Relatorio extends AppCompatActivity {

    Pessoa respostaPessoa;
    ArrayAdapter adaptador;
    Intent intent;
    Bundle bundle;
    String listas[];
    ListView listat;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_relatorio);
        listat=findViewById(R.id.listat);
        init();
    }

    public void init(){
        intent = getIntent();
        bundle = intent.getExtras();

        respostaPessoa = (Pessoa) bundle.getSerializable("pessoa");
        Toast.makeText(this,"pessoa:"+
                respostaPessoa.toString()   , Toast.LENGTH_LONG).show();
        Toast.makeText(this,"Tarefas:"+
        respostaPessoa.getTarefas().toString(), Toast.LENGTH_LONG).show();


        listas = respostaPessoa.conversao(respostaPessoa.getNome(),
                 respostaPessoa.getTarefas()   );
        adaptador = new ArrayAdapter
  (this,android.R.layout.simple_list_item_1, listas);
       listat.setAdapter(adaptador);
    }

}
						

Agora vamos para a classe MainActivity

Que ficará da seguinte forma:


package br.com.coti.mylista3;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
							
import java.util.ArrayList;
import java.util.Date;
							
import model.Pessoa;
import model.Tarefa;
							
public class MainActivity extends AppCompatActivity {
							
							
EditText txtNome,txtMatricula,
txtTarefa, txtDataInicio, txtDataConclusao,
txtPendencia;
							
Pessoa pessoa;
Tarefa tarefa;
							
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
		}
							
public void adicionar(View v){
tarefa = new Tarefa();
pessoa.setId(new Integer(txtMatricula.getText().toString()));
pessoa.setNome(txtNome.getText().toString());
							
	public void init(){
	pessoa = new Pessoa();
	txtMatricula = findViewById(R.id.txtMatricula);
	txtNome = findViewById(R.id.txtNome);
	pessoa.setTarefas(new ArrayList ());
		}
							
	txtTarefa = findViewById(R.id.txtTarefa);
	txtDataInicio = findViewById(R.id.txtDataInicio);
	txtDataConclusao= findViewById(R.id.txtDataConclusao);
	txtPendencia = findViewById(R.id.txtPendencia);
	tarefa.setNomeTarefa(txtTarefa.getText().toString());
	tarefa.setDataTarefaFazer(
	//mes-dia-Ano
	new Date( txtDataInicio.getText().toString())
		);
	tarefa.setDataTarefaconclusao(
	new Date( txtDataConclusao.getText().toString())
		);
							
		tarefa.setStatus(txtPendencia.getText().toString());
							
		pessoa.adicionar(tarefa);
		Toast.makeText(getApplicationContext(),
		".......Pessoa" + pessoa.toString(),Toast.LENGTH_LONG).show();
		Toast.makeText(getApplicationContext(),
		"Tarefa" + tarefa.toString(),Toast.LENGTH_LONG).show();
		}
							
		public void mostrart(View v){
							
		Intent it = new Intent(this, Relatorio.class);
		Bundle b = new Bundle();
		b.putSerializable("pessoa", pessoa);

		it.putExtras(b);
		startActivity(it);
		}
			}
					

Agora vamos para a nossa primeira tela : activity_main

Que ficará da seguinte forma:


<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">

 <LinearLayout
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical"
     android:padding="10dp"
     android:background="#c3d5ff"
     >
 <TextView
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="Matricula"
     android:textSize="18dp"
     android:textColor="#032987"
     />

 <EditText
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:id="@+id/txtMatricula"
     android:inputType="number"
     />

   <TextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:text="Nome"
       android:textSize="18dp"
       android:textColor="#032987"
       />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtNome"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Tarefa"
        android:textSize="18dp"
        android:textColor="#032987"
        />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtTarefa"
        android:inputType="textMultiLine"
        android:minLines="2"
        android:maxLines="5"
        android:gravity="top|left"
        />


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="dataInicio"
        android:textSize="18dp"
        android:textColor="#032987"
        />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtDataInicio"
        android:inputType="date"
        android:textColor="#032987"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="dataConclusao"
        android:textSize="18dp"
        android:textColor="#032987"
        />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtDataConclusao"
        android:inputType="date"
        />


    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Pendencia"
        android:textSize="18dp"
        android:textColor="#032987"
        />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtPendencia"
        android:inputType="text"
        />
  <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
    android:orientation="horizontal"
      android:background="#5762a4"
      >
  <Button
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:onClick="adicionar"
      android:text="ADD"/>
   <Button
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:onClick="mostrart"
/>


  </LinearLayout>

 </LinearLayout>

</ScrollView>
						
						
						

Em seguida vamos para a nossa proxima tela: activity_relatorio

Que ficará da seguinte forma:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<ListView   android:layout_width="match_parent"
android:layout_height="match_parent"
android:id= "@+id/listat"
>
</ListView>
</LinearLayout>
									

Agora vamos criar um emulador para rodar o projeto

Clique em Run App no canto superior direito

Clique em Create New Virtual Device

Escolha o dispositivo que deseja emular e clica em Next

Após clicar em Next selecione a versão (estamos trabalhando com a 6 Marshmallow)


E clique novamente em Next

Em AVD Name coloque o nome que desejar para o seu emulador e clique em Finish

Após criar clique em OK

E então , o aplicativo estará rodando no emulador

Preencha os campos e clique no botão ADD

Após clicar no botão ADD os dados serão gravados

Clique no botão Mostrar e irá aparecer sua lista