我有問題listview。我有我的主要活動叫SecondActivity.java
其中我只有按鈕像kierunkiButton。創建這個按鈕,新的活動點擊後,KierunkiActivity.java
你可以看到如下:Listview顯示兩次所有行
kierunkiButton.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Intent intent = new Intent();
intent.setClass(SecondActivity.this, KierunkiActivity.class);
startActivity(intent);
}
});
新的活動,KierunkiActivity
是一個ListActivity,你可以看到如下:
public class KierunkiActivity extends ListActivity {
SharedPreferences preferences;
SQLiteDatabase sqliteData;
static String kier;
static ArrayList<String> results = new ArrayList<String>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.lista_activity2);
preferences = PreferenceManager.getDefaultSharedPreferences(this);
openAndQueryDatabase();
displayResultList();
}
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
//Object o = this.getListAdapter().getItem(position);
Object selectedItem = l.getItemAtPosition(position);
kier = selectedItem.toString();
if (position == 0) {
Intent intent = new Intent();
intent.setClass(KierunkiActivity.this, MatematykaActivity.class);
startActivity(intent);
} else if (position == 1) {
Intent intent = new Intent();
intent.setClass(KierunkiActivity.this, MatematykaActivity.class);
startActivity(intent);
}
}
private void openAndQueryDatabase() {
try {
DBHelper dbHelper = new DBHelper(this.getApplicationContext());
sqliteData = dbHelper.getReadableDatabase();
Cursor c = sqliteData.rawQuery(
"select Kierunek from Kierunki order by _id", null);
System.out.println("------cursor: " + c.getCount());
if (c != null) {
if (c.moveToFirst()) {
do {
String kier = c.getString(c.getColumnIndex("Kierunek"));
results.add(kier);
} while (c.moveToNext());
}
}
System.out.println("---------" + results.size() + "--------------");
} catch (SQLiteException se) {
Log.e(getClass().getSimpleName(),
"Could not create or Open the database");
}
}
private void displayResultList() {
setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, results));
getListView().setTextFilterEnabled(true);
}
我的問題是,要每次點擊kierunkibutton時,都會添加列表視圖(在我的KierunkiActivity
中)行。
我的意思:我第一次點擊kierunkibutton我有2行(正確的)。當我回到以前的活動,並再次點擊kierunkibutton我有這些舊的2行和2行額外(當然是相同的)。而第三次我有六個,繼續前進。 我認爲我應該檢查這個listview是否在點擊kierunkibutton後每次都被填充,或者從這個listview中刪除所有行。但我不知道該怎麼做。
你有任何想法如何做到這一點? 在此先感謝!
你必須先清除你的數組列表,然後再次點擊它。 –
嘿請發佈您的KierunkiActivity的完整代碼,所以我們可以幫助您 –