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 lista = new ArrayList(); private ArrayList cadeiras = new ArrayList(); private ArrayList notas = new ArrayList(); private ArrayAdapter 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(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