Rafal S
Rafal S

Reputation: 1

Thread refreshing ListView

Its my first program in java. Im writing simple application on Tablet. Application connect to SQL server in my laptop and get some data. At this moment i get data from SQL when i push button.

public class ZawodnicyWyniki extends AppCompatActivity {
   // Connection conn = null;
    private String SQLQuery;
    private Statement st = null;
    private ResultSet rs = null;
    private ArrayList<classWyniki> myListWyniki = new ArrayList<>();
    private classWidokListaWynikow listaWynikowAdapter;
    private ListView lvWyniki;
    private TextView tvWybraneZawody, tvOkrazenia,tvWystartowani,tvUkonczyli;

    private Thread mThread; // watek odpalajacy czytanie wynikow
    final Handler handler = new Handler(); // handler do powtarzania operacji w odstepie kilku sekund
    Runnable runnable;
    final int delay = 2000; // czas opoznienia, 1000 milliseconds == 1 second

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_zawodnicy_wyniki);
        lvWyniki           = (ListView)findViewById(R.id.lvWyniki);
        tvWybraneZawody    = (TextView)findViewById(R.id.txtGetWybraneZawody);
        tvOkrazenia        = (TextView)findViewById(R.id.txtGetOkrazenia);
        tvWystartowani     = (TextView)findViewById(R.id.txtGetWystartowani);
        tvUkonczyli        = (TextView)findViewById(R.id.txtGetUkonczyli);

        tvWybraneZawody.setText(UstawieniaPolaczenia.wybraneZawody.getNazwaZawodow());
        tvOkrazenia.setText(UstawieniaPolaczenia.wybraneZawody.getIloscOkrazen());

        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });
    }
    public void WyswietlajWyniki(View view) throws SQLException { // REAKCJA NA WCISNIETY PRZYCISK // public void WyswietlajWyniki(View view) throws SQLException
        try {
            if (UstawieniaPolaczenia.wybraneZawody.getId() > 0 ) {
                if (UstawieniaPolaczenia.polaczenieWyniki != null) {
                    System.out.println("myHandler: here!"); // Do your work here
                    SQLQuery = "Select Zawodnicy.Prefer_Start_number,Zawodnicy.imie, Zawodnicy.nazwisko, Zawodnicy.miasto, Zawodnicy.klub, CONVERT(varchar(50),Wyniki.Czas,14) as Czas, Wyniki.Lap FROM [Gepard_2].[dbo].[Runners] as Zawodnicy INNER JOIN [Gepard_2].[dbo].[ReadingTimes_Converted_Brutto] as Wyniki ON Zawodnicy.Tag_id = Wyniki.Tag_Id and Zawodnicy.zawody_id = '" + UstawieniaPolaczenia.wybraneZawody.getId() + "' and Wyniki.Lap <= '"+UstawieniaPolaczenia.wybraneZawody.getIloscOkrazen()+"'order by Wyniki.Czas desc";
                    st = UstawieniaPolaczenia.polaczenieWyniki.createStatement();
                    rs = st.executeQuery(SQLQuery);
                    while (rs.next()) {
                        classWyniki ListaWynikow = new classWyniki(rs.getString(1), rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getString(6), rs.getString(7));
                        myListWyniki.add(ListaWynikow);
                    }
                    listaWynikowAdapter = new classWidokListaWynikow(this, myListWyniki);
                    lvWyniki.setAdapter(listaWynikowAdapter);
                }
            }else{
                Toast.makeText(getApplicationContext(), "Nie wybrano zawodów " + UstawieniaPolaczenia.wybraneZawody.getId().toString(), Toast.LENGTH_LONG).show();
            }

        }catch (Exception e) {
            Log.e("Error", e.getMessage());
        }
    }

}

How can I do this using task and repiting this task. I tried to create a class and a task

Runnable myRunnable1 = new ThreadDisplayResults(); // new class  
Thread t1 = new Thread(myRunnable1);  
t1.start();

but I don't know how to pass the items

Upvotes: 0

Views: 38

Answers (0)

Related Questions