sqlite listview query

0

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

    
asked by longo 01.01.2019 в 20:24
source

0 answers