package ur.grades;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.io.StreamCorruptedException;
import java.util.ArrayList;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Toast;
public class Start extends Activity implements Serializable {
private ListView listView;
private ArrayList<String> lista = new ArrayList<String>();
private ArrayList<String> cadeiras = new ArrayList<String>();
private ArrayList<String> notas = new ArrayList<String>();
private ArrayAdapter<String> adapter = null;
private static String fich = "gravar.dat";
EditText aux;
LinearLayout dialerLayout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.listagem);
listView = (ListView)findViewById(R.id.listView1);
listView.setTextFilterEnabled(true);
listView.setChoiceMode( 1);
registerForContextMenu(listView);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
});
}
@Override
protected void onStart() {
super.onStart();
FileInputStream fin;
try {
fin = new FileInputStream(fich);
ObjectInputStream in = new ObjectInputStream(fin);
carregar(in);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (StreamCorruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, lista);
listView.setAdapter(adapter);
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
ObjectOutputStream out;
try {
out = new ObjectOutputStream(new FileOutputStream(fich));
gravar(out);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//Menu de contexto
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Opções");
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
}
//Ao criar a aplicação, cria o menu com as devidas opções.
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_principal, menu);
return true;
}
// O que fazer quando se clica num botão do Menu
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.adicionar:
//Toast.makeText(this, "This is the Toast message", Toast.LENGTH_LONG).show();
final AlertDialog.Builder alert = new AlertDialog.Builder(this);
final EditText input = new EditText(this);
LayoutInflater layoutInflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
dialerLayout = (LinearLayout) layoutInflater.inflate(R.layout.input, null);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.FILL_PARENT);
dialerLayout.setLayoutParams(params);
alert.setView(dialerLayout);
alert.setPositiveButton("Adicionar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
aux = (EditText)dialerLayout.findViewById(R.id.cadeira);
String value = aux.getText().toString();
aux = (EditText)dialerLayout.findViewById(R.id.nota);
int nota = Integer.parseInt(aux.getText().toString());
notas.add(String.valueOf(nota));
cadeiras.add(value);
String finalz = value+" : "+nota;
lista.add(finalz);
adapter.notifyDataSetChanged();
}
});
alert.setNegativeButton("Cancelar",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
dialog.cancel();
}
});
alert.show();
return true;
case R.id.media:
calcular_media();
return true;
case R.id.gravar:
ObjectOutputStream out;
try {
out = new ObjectOutputStream(new FileOutputStream(fich));
gravar(out);
Toast.makeText(getApplicationContext(), "nice!", Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
Toast.makeText(getApplicationContext(), "error1!", Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IOException e) {
Toast.makeText(getApplicationContext(), "error2!", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
return true;
default: return super.onOptionsItemSelected(item);
}
}
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterView.AdapterContextMenuInfo contextMenuInfo = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
if(item.getItemId()==R.id.item2){
lista.remove(contextMenuInfo.position);
notas.remove(contextMenuInfo.position);
cadeiras.remove(contextMenuInfo.position);
adapter.notifyDataSetChanged();
return true;
}
return false;
}
public void calcular_media(){
double contador=0;
double soma_notas=0;
double media=0;
for(int i=0;i<notas.size();i++){
contador++;
soma_notas+=Double.parseDouble(notas.get(i));
}
media= (soma_notas)/(contador);
Toast.makeText(getApplicationContext(), "Média = "+media, Toast.LENGTH_LONG).show();
}
public void gravar(ObjectOutputStream out) throws IOException {
out.writeObject(lista);
out.writeObject(cadeiras);
out.writeObject(notas);
out.close();
}
public void carregar(ObjectInputStream in) throws IOException, ClassNotFoundException {
lista=(ArrayList<String>) in.readObject();
cadeiras=(ArrayList<String>) in.readObject();
notas= (ArrayList<String>) in.readObject();
in.close();
}
}