import java.util.ArrayList;
import java.util.List;
import static java.lang.Integer.parseInt;
public class MainActivity extends AppCompatActivity {
BDPaises conn;
ListView lista;
ArrayList<String>lis;
ArrayAdapter adaptador;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
conn =new BDPaises(this);
lista =(ListView)findViewById(R.id.lista);
}
public boolean onCreateOptionsMenu (Menu mimenu){
getMenuInflater().inflate(R.menu.menu_insertar,mimenu);
return true;
}
public boolean onOptionsItemSelected (final MenuItem item){
int id = item.getItemId();
if(id==R.id.insertardatos){
LayoutInflater inflater = getLayoutInflater();
final View dialoglayout = inflater.inflate(R.layout.datos, null);
Button guardar = (Button) dialoglayout.findViewById(R.id.guardar);
Button cancelar = (Button)dialoglayout.findViewById(R.id.cancelar);
final EditText nombre=(EditText) dialoglayout.findViewById(R.id.nombre);
final EditText capital=(EditText)dialoglayout.findViewById(R.id.capital);
final EditText continente=(EditText)dialoglayout.findViewById(R.id.continente);
final EditText habitantes= (EditText)dialoglayout.findViewById(R.id.habitantes);
final BDAdaptador adp = new BDAdaptador(getApplicationContext());
guardar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
SQLiteDatabase BD = conn.getWritableDatabase();
adp.insertar(nombre.getText().toString(),capital.getText().toString(),continente.getText().toString(),parseInt(habitantes.getText().toString()));
lis=adp.consultar();
ArrayAdapter adaptador = new ArrayAdapter(getApplicationContext(), android.R.layout.simple_list_item_1, lis);
adaptador.notifyDataSetChanged();
lista.setAdapter(adaptador);
Toast.makeText(getApplicationContext(), "Datos guardados correctamente", Toast.LENGTH_LONG).show();
}
});
cancelar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
adp.eliminar();
Intent myIntent = new Intent(MainActivity.this, MainActivity.class);
startActivity(myIntent);
Toast.makeText(getApplicationContext(), "Actividad Principal datos no guardados", Toast.LENGTH_LONG).show();
}
});
lista.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent nuevactividad = new Intent(view.getContext(),Main2Activity.class);
// nuevactividad.putExtra("Nombre",1));
startActivity(nuevactividad);
}
});
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setView(dialoglayout);
builder.show();
}
return true;
}
}
import android.app.Dialog;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.support.v7.widget.AlertDialogLayout;
import android.widget.EditText;
import java.util.ArrayList;
public class BDAdaptador {
private Context contexto;
private BDPaises bdPaises;
private SQLiteDatabase bd;
public BDAdaptador(Context c) {
this.contexto = c;
bdPaises = new BDPaises(c);
}
//Método de inserción. Indicar el tipo de datos devuelto
public void insertar(String nombre, String capital, String continente, int habitantes) {
bd = bdPaises.getWritableDatabase();
//Insertar el código de inserción aquí
ContentValues insertar = new ContentValues();
insertar.put("Nombre", nombre);
insertar.put("Capital", capital);
insertar.put("Continente", continente);
insertar.put("Habitantes", habitantes);
if (bd != null) {
bd.insert("Paises", null, insertar);
bd.close();
}
//Fin código de inserción
}
//Método de consulta. Indicar el tipo de datos devuelto
public ArrayList consultar() {
ArrayList<String> listado = new ArrayList<>();
bd = bdPaises.getReadableDatabase();
String q = "SELECT * FROM Paises";
Cursor consulta = bd.rawQuery(q, null);
if (consulta.moveToFirst()) {
do {
listado.add(consulta.getString(0)+""+consulta.getString(1)+""+consulta.getString(2)+""+consulta.getString(3));
} while (consulta.moveToNext());
}
bd.close();
return listado;
}
public void eliminar(){
bd=bdPaises.getWritableDatabase();
bd.execSQL("DELETE FROM Paises");
//Insertar el código de eliminación aquí
//Fin código de consulta
bd.close();
}
}
I do not know how to only show the first data of the arraylist in the listview, and then I want to click on the item in the listview to take me to another activity where the remaining data come from the query