Android Studio SQL Veri Çekmek

Aselizan

Hectopat
Katılım
18 Temmuz 2020
Mesajlar
49
Merhabalar. Android Studio ile quiz uygulaması geliştirmeye çalışıyorum. Sormak istediğim şey veritabanından nasıl her defasında farklı bir veri çekebilirim ? ben bunu her defasında uygulamayı yeniden yükleyerek anlık bir çözüm buldum fakat başka bir yolu yöntemi var mı yardımcı olursanız sevinirim. Aşağıya sql ve mainactivity kodlarını bırakıyorum.

SQL class


Java:
public class DatabaseAccess {
    private SQLiteOpenHelper openHelper;
    private SQLiteDatabase database;
    private static DatabaseAccess instance;
    String yazar_id;
    String asd;
    List<String> a = new ArrayList<>();

    /**
     * Private constructor to aboid object creation from outside classes.
     *
     * @param context
     */
    private DatabaseAccess(Context context) {
        this.openHelper = new DatabaseOpenHelper(context);
    }

    /**
     * Return a singleton instance of DatabaseAccess.
     *
     * @param context the Context
     * @return the instance of DabaseAccess
     */
    public static DatabaseAccess getInstance(Context context) {
        if (instance == null) {
            instance = new DatabaseAccess(context);
        }
        return instance;
    }

    /**
     * Open the database connection.
     */
    public void open() {
        this.database = openHelper.getWritableDatabase();
    }

    /**
     * Close the database connection.
     */
    public void close() {
        if (database != null) {
            this.database.close();
        }
    }




    /**
     * Read all quotes from the database.
     *
     * @return a List of quotes
     */
    public List<String> getyazarlar() {
        List<String> list = new ArrayList<>();
        Cursor cursor = database.rawQuery("SELECT yazar_adi,id FROM yazarlar ORDER BY RANDOM()  ", null);
        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {
            list.add(cursor.getString(0));
            a.add(cursor.getString(1));
            cursor.moveToNext();
            vericek();
        }

        cursor.close();
        return list;
    }

    public List<List> getYazarlar(){
        List<List> liste = new ArrayList<>();
        List<String> list = new ArrayList<>();
        List<String> id = new ArrayList<>();
        Cursor cursor = database.rawQuery("SELECT yazar_adi,id FROM yazarlar ORDER BY RANDOM()  ", null);
        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {
            list.add(cursor.getString(0));
            id.add(cursor.getString(1));
            cursor.moveToNext();
            vericek();
        }

        liste.add(list);
        liste.add(id);

        return liste;

    }



    public List<String> vericek(){
         List <String> a = this.a;

        return a;
    }

    public String getKitap() {
        Cursor cr=  database.rawQuery("SELECT kitap_adi,yazar_id FROM kitaplar ORDER BY RANDOM() LIMIT 1  ",null);
        String sum= "";
        for(cr.moveToFirst();!cr.isAfterLast();cr.moveToNext()){
            sum = cr.getString(cr.getColumnIndex("kitap_adi"));
            yazar_id = cr.getString(cr.getColumnIndex("yazar_id"));


        }
        cr.close();
        return sum;
    }

    public String getyazarid() {

        String yazarid = this.yazar_id;
        return yazarid;
    }



Main Activity

Java:
public class MainActivity extends AppCompatActivity {


    TextView textView;
    TextView dogru;
    TextView yanlis;

    int yanlis_sayac = 0;
    int dogru_sayac = 0;



    Button A;
    Button B;
    Button C;
    Button karistir;
    String gelenVeri;
    int sayac = 0;




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);



        this.textView = (TextView) findViewById(R.id.textView);



        this.A = findViewById(R.id.cevapA);
        this.B = findViewById(R.id.cevapB);
        this.C = findViewById(R.id.cevapC);
        this.yanlis = findViewById(R.id.yanlis);
        this.dogru = findViewById(R.id.dogru);
        this.karistir = findViewById(R.id.karistir);


        DatabaseAccess databaseAccess = DatabaseAccess.getInstance(this);

        databaseAccess.open();


        //List<String> quotes = databaseAccess.getyazarlar();
        //List<String> quotes2 = databaseAccess.vericek();
        List<List> deneme = databaseAccess.getYazarlar();

        /*
        //ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, quotes);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, deneme.get(1));
        ArrayAdapter<String> adapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, deneme.get(0));

*/


        this.A.setText((String) deneme.get(0).get(0));
        this.A.setTag((String) deneme.get(1).get(0));
        this.B.setText((String) deneme.get(0).get(1));
        this.B.setTag((String) deneme.get(1).get(1));
        this.C.setText((String) deneme.get(0).get(2));
        this.C.setTag((String) deneme.get(1).get(2));
        this.dogru.setText(String.valueOf(dogru_sayac));
        this.yanlis.setText(String.valueOf(yanlis_sayac));
/*
        this.listView.setAdapter(adapter);
        this.listView2.setAdapter(adapter2);

*/

        String gelenKitap = databaseAccess.getKitap();
        String gelenyazarid =databaseAccess.getyazarid();
        String asd =databaseAccess.deneme();
        this.karistir.setText("GEÇ");
        //textView22.setText(asd);
        textView.setText(gelenKitap);
        textView.setTag(gelenyazarid);
        databaseAccess.close();


        A.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(A.getTag().equals(textView.getTag())){

                    A.setBackgroundColor(Color.GREEN);
                    dogru_sayac++;
                }

                else{
                    A.setBackgroundColor(Color.RED);
                    yanlis_sayac++;
                }

                reload();


            }
        });

        B.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                if(B.getTag().equals(textView.getTag())){

                    dogru_sayac++;
                    B.setBackgroundColor(Color.GREEN);

                }

                else{
                    B.setBackgroundColor(Color.RED);
                    yanlis_sayac++;
                }

                reload();

            }
        });

        C.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if(C.getTag().equals(textView.getTag())){
                    C.setBackgroundColor(Color.GREEN);
                    dogru_sayac++;

                }

                else{
                    C.setBackgroundColor(Color.RED);
                    yanlis_sayac++;
                }

                reload();

            }
        });



        karistir.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                reload();

            }
        });


    }

    public void reload() {
        Intent intent = getIntent();
        overridePendingTransition(0, 0);
        intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
        finish();
        overridePendingTransition(0, 0);
        startActivity(intent);





    }


}
 
Son düzenleyen: Moderatör:

Geri
Yukarı