我使用listview加载其中的所有数据库项,并且它可以正常工作。问题是我每次回想起我的列表视图活动填充了我的重复项目。 代码如下:
public class UserActivity extends ActionBarActivity{
public static ArrayList<String> ArrayofName = new ArrayList<String>();
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.user_activity);
DataHandler db = new DataHandler(this);
List<Data> items = db.getTitle();
listView = (ListView) findViewById(R.id.listView1);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, ArrayofName);
listView.setAdapter(adapter);
}
e.g。如果我插入项目&#34; Facebook&#34;它将被插入我的数据库中,当我调用UserActivity时,它将加载数据库内容(在这种情况下是Facebook项目)并在我的listView中显示其所有内容。问题是,当我这样做时,我的listView显示我2 Facebook项目。如果我有2个项目,当我回想起UserActivity时,它会显示4个项目。
出了什么问题? 谢谢
答案 0 :(得分:1)
问题在于
public static ArrayList<String> ArrayofName = new ArrayList<String>();
它不应该是静态的,否则这将被创建一次并且它不会在下一个活动重新创建时初始化。移除静态关键字并像这样写 -
public ArrayList<String> ArrayofName = new ArrayList<String>();
OR 当您从数据库填充satrts时,确保ArrayList没有元素。
答案 1 :(得分:1)
有两种解决方案:
1。)从
中删除static
关键字
public static ArrayList<String> ArrayofName = new ArrayList<String>();
如果因任何原因无法删除关键字,请使用解决方案2。)。
2.。)在添加新条目之前,请调用clear()
的{{1}}方法。