вот я так и подумал... почему у вас при каждом клике создается новый адаптер?Nastasia писал(а):Весь код просто длинный, и там много лишнего, не относящегося к вопросу.Код: Выделить всё
package com.example.streliba; import android.app.Activity; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.os.Bundle; import android.os.SystemClock; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.Chronometer; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; public class BeginShooting extends Activity implements OnClickListener { final String LOG_TAG = "myLogs"; Button btnAdd, btnRead, butStart, butStop, butPause; EditText enterpoints, datat, namee; DBHelper dbHelper; int i=1; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.beginshooting); btnAdd = (Button) findViewById(R.id.btnok); btnAdd.setOnClickListener(this); btnRead = (Button) findViewById(R.id.btnRead); btnRead.setOnClickListener(this); butStart = (Button) findViewById(R.id.buttonstart); butStart.setOnClickListener(this); butPause = (Button) findViewById(R.id.buttonpause); butPause.setOnClickListener(this); butStop = (Button) findViewById(R.id.buttonstop); butStop.setOnClickListener(this); enterpoints = (EditText) findViewById(R.id.enterpoints); namee = (EditText) findViewById(R.id.name); datat = (EditText) findViewById(R.id.data); dbHelper = new DBHelper(this); String curDate = new SimpleDateFormat("dd.MM.yyyy").format(Calendar.getInstance().getTime()); datat.setText(curDate); Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer); chronometer.setText("00:00:00"); } @Override public void onClick(View v) { ListView listView = (ListView) findViewById(R.id.listpoints); // Создаём пустой массив для хранения очков final ArrayList<String> listpoint = new ArrayList<String>(); // Создаём адаптер ArrayAdapter, чтобы привязать массив к ListView final ArrayAdapter<String> adapter; adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listpoint); // Привяжем массив через адаптер к ListView listView.setAdapter(adapter); // создаем объект для данных ContentValues cv = new ContentValues(); // получаем данные из полей ввода String points = enterpoints.getText().toString(); String name = namee.getText().toString(); String elapsedTime = "00:00:00"; // подключаемся к БД SQLiteDatabase db = dbHelper.getWritableDatabase(); String curDate = new SimpleDateFormat("dd.MM.yyyy").format(Calendar.getInstance().getTime()); Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer); String time = (String) chronometer.getText(); switch (v.getId()) { case R.id.buttonstart: chronometer.setBase(SystemClock.elapsedRealtime()); chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer chronometer) { CharSequence text = chronometer.getText(); if (text.length() == 5) { chronometer.setText("00:"+text); } else if (text.length() == 7) { chronometer.setText("0"+text); } } }); chronometer.start(); break; case R.id.buttonpause: String pauseq=(String) butPause.getText(); if(pauseq.equals("Pause")){ chronometer.stop(); butPause.setText("Resume"); }else{ elapsedTime = (String) chronometer.getText(); int stoppedMilliseconds=0; String array[]=elapsedTime.split(":"); stoppedMilliseconds =Integer.parseInt(array[0])*60*60*1000+Integer.parseInt(array[1])*60*1000+Integer.parseInt(array[2])*1000; chronometer.setBase(SystemClock.elapsedRealtime()-stoppedMilliseconds); chronometer.start(); butPause.setText("Pause"); } break; case R.id.buttonstop: chronometer.stop(); break; case R.id.btnok: if(points.equals("")){ Toast.makeText(this, "Введите результат", Toast.LENGTH_LONG).show(); }else{ if(name.equals("")){ Toast.makeText(this, "Введите имя", Toast.LENGTH_LONG).show(); } else if(time=="00:00:00") { Toast.makeText(this, "Включите таймер", Toast.LENGTH_LONG).show(); } Log.d(LOG_TAG, "--- Insert in mytable: ---"); cv.put("points", points); cv.put("data", curDate); cv.put("time", time); cv.put("name", name); // вставляем запись и получаем ее ID long rowID = db.insert("mytable", null, cv); Log.d(LOG_TAG, "row inserted, ID = " + rowID); listpoint.add( i+++". "+enterpoints.getText().toString()); adapter.notifyDataSetChanged(); enterpoints.setText(""); } break; case R.id.btndel: break; case R.id.btnRead: Log.d(LOG_TAG, "--- Rows in mytable: ---"); // делаем запрос всех данных из таблицы mytable, получаем Cursor Cursor c = db.query("mytable", null, null, null, null, null, null); // ставим позицию курсора на первую строку выборки // если в выборке нет строк, вернется false if (c.moveToFirst()) { // определяем номера столбцов по имени в выборке int idColIndex = c.getColumnIndex("id"); int pointsColIndex = c.getColumnIndex("points"); int dataColIndex = c.getColumnIndex("data"); int timeColIndex = c.getColumnIndex("time"); int nameColIndex = c.getColumnIndex("name"); do { // получаем значения по номерам столбцов и пишем все в лог Log.d(LOG_TAG, "ID = " + c.getInt(idColIndex) + ", points = " + c.getString(pointsColIndex) + ", data = " + c.getString(dataColIndex)+ ", time = "+c.getString(timeColIndex)+ ", name = "+c.getString(nameColIndex)); // переход на следующую строку // а если следующей нет (текущая - последняя), то false - выходим из цикла } while (c.moveToNext()); } else Log.d(LOG_TAG, "0 rows"); c.close(); break; } // закрываем подключение к БД dbHelper.close(); } class DBHelper extends SQLiteOpenHelper { public DBHelper(Context context) { // конструктор суперкласса super(context, "myDB", null, 1); } @Override public void onCreate(SQLiteDatabase db) { Log.d(LOG_TAG, "--- onCreate database ---"); // создаем таблицу с полями db.execSQL("create table mytable (" + "id integer primary key autoincrement," + "points text," + "data text," + "time text," + "name text"+");"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } }
делайте это один раз в onCreate(), а в onClick() оставте только добавление нового элемента.