【发布时间】:2014-11-24 14:21:57
【问题描述】:
我有一个从数据库中获取其值的列表。
对于每个项目,我都放置了一个删除按钮。 当用户单击按钮时,该项目被删除。 我的问题是我不知道删除后如何刷新列表...
我已经在 assets 文件夹中创建了一个数据库。
我删除并刷新列表的唯一问题
类 QusitionActivity:
public class QusitionActivity extends Activity {
String path=Environment.getExternalStorageDirectory()+"/mmm" + "/"+"HOME";
String[]qustion;
ListView list;
Myadapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_qusition);
SQLiteDatabase dataBase=openOrCreateDatabase(path, MODE_PRIVATE, null);
Cursor cursor=dataBase.rawQuery("SELECT qustion,position FROM List_qusition;"
, null);
qustion=new String[cursor.getCount()];
int i=0;
while (cursor.moveToNext()) {
qustion[i]=cursor.getString(cursor.getColumnIndex("qustion"));
i++;
}
dataBase.close();
list=(ListView)findViewById(R.id.listView1);
adapter=new Myadapter(getApplicationContext());
list.setAdapter(adapter);
}
}
类 Myadapter:
public class Myadapter extends BaseAdapter {
LayoutInflater myInflater;
public Myadapter(Context context) {
myInflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
return qustion.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder Holder;
if(convertView==null) {
Holder=new ViewHolder();
convertView=myInflater.inflate(R.layout.item_custom_layout,null );
Holder.qustion=(TextView)convertView.findViewById(R.id.text_qustion);
Holder.delete=(Button)convertView.findViewById(R.id.button_delete);
Holder.qustion.setText(qustion[position]);
Holder.delete.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SQLiteDatabase dataBase=openOrCreateDatabase(path,
MODE_PRIVATE, null);
dataBase.execSQL("DELETE FROM List_qusition WHERE position="
+(position+1) +";");
dataBase.close();
// Delete_item(position);
}
});
convertView.setTag(Holder);
} else {
Holder=(ViewHolder) convertView.getTag();
}
return convertView;
}
}
类 ViewHolder
public class ViewHolder extends Activity {
TextView qustion;
Button delete;
}
【问题讨论】:
-
删除后从您的适配器调用 notifyDatasetChanged()
标签: android sqlite fetch delete-row