我有问题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的完整代码,所以我们可以帮助您 –