Java 列ID+“整数主键自动递增,”+ 列名称+文本,“+列位置+文本,”+ 列日期+文本,“+列时间+文本,”+ 列描述+文本,“+列用户名+文本” ); } 公共长createEvent(事件){ db=this.getWritableDatabase(); ContentValues=新的ContentValues(); value.put(列名称,event.getName()); value.put(列位置,event.getLocation()); value.put(列_DATE,event.getDate()); value.put(COLUMN_TIME,event.getTime()); value.put(列描述,event.getDescription()); value.put(COLUMN_USERNAME,event.getUsername()); long result=db.insert(表名称,null,值); db.close(); 返回结果; } public int updateEvent(事件){ db=this.getWritableDatabase(); ContentValues=新的ContentValues(); value.put(列名称,event.getName()); value.put(列位置,event.getLocation()); value.put(列_DATE,event.getDate()); value.put(COLUMN_TIME,event.getTime()); value.put(列描述,event.getDescription()); int rowsAffected=db.update(表名称、值、列ID+“=?”, 新字符串[]{String.valueOf(event.getId())}; db.close(); 返回受影响的行; } 公共列表getAllEvent(字符串用户名){ 列表事件=新建ArrayList(); db=this.getWritableDatabase(); Cursor Cursor=db.rawQuery(“从“+表名称+”中选择*,其中“+列用户名+”=“+”+“+用户名+”,null); if(cursor.moveToFirst()){ 做{ 添加(新事件(Integer.parseInt(cursor.getString(0)), cursor.getString(1),cursor.getString(2), cursor.getString(3),cursor.getString(4), cursor.getString(5),cursor.getString(6)); }while(cursor.moveToNext()); } cursor.close(); db.close(); 返回事件; } public int getEventCount(){ db=this.getReadableDatabase(); Cursor Cursor=db.rawQuery(“SELECT*FROM”+表名称,null); int count=cursor.getCount(); cursor.close(); db.close(); 返回计数; } 公共int deleteEvent(事件){ db=this.getWritableDatabase(); int rowsAffected=db.delete(表名,列ID+“=?”, 新字符串[]{String.valueOf(event.getId())}; db.close(); 返回受影响的行; } @凌驾 public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){ String query=“如果存在,则删除表格”+表格名称; execSQL(查询); 这个.onCreate(db); } }
因此,每当我显示ListView时,它都不会显示任何内容。如何显示只有特定用户名的数据?谢谢对不起,我的英语不好试着“populateList();”从数据库中获取数据后的列表…是的,我按照代码NAAHHH中所示做了。。将其放在从数据库操作获取值之前..调用Java 列ID+“整数主键自动递增,”+ 列名称+文本,“+列位置+文本,”+ 列日期+文本,“+列时间+文本,”+ 列描述+文本,“+列用户名+文本” ); } 公共长createEvent(事件){ db=this.getWritableDatabase(); ContentValues=新的ContentValues(); value.put(列名称,event.getName()); value.put(列位置,event.getLocation()); value.put(列_DATE,event.getDate()); value.put(COLUMN_TIME,event.getTime()); value.put(列描述,event.getDescription()); value.put(COLUMN_USERNAME,event.getUsername()); long result=db.insert(表名称,null,值); db.close(); 返回结果; } public int updateEvent(事件){ db=this.getWritableDatabase(); ContentValues=新的ContentValues(); value.put(列名称,event.getName()); value.put(列位置,event.getLocation()); value.put(列_DATE,event.getDate()); value.put(COLUMN_TIME,event.getTime()); value.put(列描述,event.getDescription()); int rowsAffected=db.update(表名称、值、列ID+“=?”, 新字符串[]{String.valueOf(event.getId())}; db.close(); 返回受影响的行; } 公共列表getAllEvent(字符串用户名){ 列表事件=新建ArrayList(); db=this.getWritableDatabase(); Cursor Cursor=db.rawQuery(“从“+表名称+”中选择*,其中“+列用户名+”=“+”+“+用户名+”,null); if(cursor.moveToFirst()){ 做{ 添加(新事件(Integer.parseInt(cursor.getString(0)), cursor.getString(1),cursor.getString(2), cursor.getString(3),cursor.getString(4), cursor.getString(5),cursor.getString(6)); }while(cursor.moveToNext()); } cursor.close(); db.close(); 返回事件; } public int getEventCount(){ db=this.getReadableDatabase(); Cursor Cursor=db.rawQuery(“SELECT*FROM”+表名称,null); int count=cursor.getCount(); cursor.close(); db.close(); 返回计数; } 公共int deleteEvent(事件){ db=this.getWritableDatabase(); int rowsAffected=db.delete(表名,列ID+“=?”, 新字符串[]{String.valueOf(event.getId())}; db.close(); 返回受影响的行; } @凌驾 public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){ String query=“如果存在,则删除表格”+表格名称; execSQL(查询); 这个.onCreate(db); } },java,android,database,sqlite,listview,Java,Android,Database,Sqlite,Listview,因此,每当我显示ListView时,它都不会显示任何内容。如何显示只有特定用户名的数据?谢谢对不起,我的英语不好试着“populateList();”从数据库中获取数据后的列表…是的,我按照代码NAAHHH中所示做了。。将其放在从数据库操作获取值之前..调用populateList()
populateList()如果(helper.getEventCount()!=0&&events.size()==0){events.addAll(helper.getAllEvent(Username));}
谢谢,但它不会改变任何内容:(尝试` populateList())`从数据库获取数据后的列表…是的,我按照代码naahhh中所示的那样做了..您将其放在从数据库操作获取值之前..在if(helper.getEventCount()!=0&&events.size()=0){events.addAll(helper.getAllEvent(Username));}之后调用方法
谢谢,但它不会改变任何事情:(
public class ViewEvent extends Activity {
private static String z = "";
private static final int _EDIT = 0, _DELETE = 1; // constants to be used later
static int longClickedItemIndex;
static List<Event> events = new ArrayList<Event>();
ArrayAdapter<Event> eventsAdapter;
ListView listViewEvents;
static DatabaseHandlerEvent helper;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_event);
Typeface myTypeFace = Typeface.createFromAsset(getAssets(), "Type Keys Filled.ttf");
TextView myTextview = (TextView) findViewById(R.id.textViewHead4);
myTextview.setTypeface(myTypeFace);
helper = new DatabaseHandlerEvent(getApplicationContext());
listViewEvents = (ListView) findViewById(R.id.listView);
registerForContextMenu(listViewEvents);
listViewEvents.setOnItemLongClickListener(
new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
longClickedItemIndex = position;
return false;
}
}
);
populateList();
SharedPreferences prfs = getSharedPreferences("AUTHENTICATION_FILE_NAME", Context.MODE_PRIVATE);
String Username = prfs.getString("Username", "");
if (helper.getEventCount() != 0 && events.size() == 0) {
events.addAll(helper.getAllEvent(Username));
}
}
public void registerForContextMenu(View view) {
view.setOnCreateContextMenuListener(this);
}
public void onButtonClick(View v){
if(v.getId() == R.id.bSignoutb){
Toast so = Toast.makeText(ViewEvent.this, "Signing out.. Redirecting to Login Page..." , Toast.LENGTH_SHORT);
so.show();
Intent i = new Intent(ViewEvent.this, MainActivity.class);
startActivity(i);
}
if(v.getId() == R.id.Bback){
Intent i = new Intent(ViewEvent.this, CreateEvent.class);
startActivity(i);
}
}
private void populateList() {
eventsAdapter = new eventListAdapter();
listViewEvents.setAdapter(eventsAdapter);
}
public class eventListAdapter extends ArrayAdapter<Event> {
public eventListAdapter() {
super(ViewEvent.this, R.layout.listview_event, events);
}
@Override
public View getView(int position, View view, ViewGroup parent) {
if (view == null) {
view = getLayoutInflater().inflate(R.layout.listview_event, parent, false);
}
Event currentEvent = events.get(position);
TextView name = (TextView) view.findViewById(R.id.textViewEventName);
name.setText(currentEvent.getName());
TextView location = (TextView) view.findViewById(R.id.textViewLocation);
location.setText(currentEvent.getLocation());
TextView date = (TextView) view.findViewById(R.id.textViewDate);
date.setText(currentEvent.getDate());
TextView description = (TextView) view.findViewById(R.id.textViewDescription);
description.setText(currentEvent.getDescription());
TextView time = (TextView) view.findViewById(R.id.textViewTime);
time.setText(currentEvent.getTime());
TextView testnia = (TextView) view.findViewById(R.id.testnia);
testnia.setText(currentEvent.getUsername());
return view;
}
}
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, view, menuInfo);
menu.setHeaderIcon(R.drawable.huhu);// find a suitable icon
menu.setHeaderTitle("Event options:");
menu.add(Menu.NONE, _EDIT, Menu.NONE, "Edit Event");
menu.add(Menu.NONE, _DELETE, Menu.NONE, "Delete Event");
}
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case _EDIT:
// editing a contact
Intent editContactIntent = new Intent(getApplicationContext(), EditEvent.class);
startActivityForResult(editContactIntent, 2); // reqcode=2
break;
case _DELETE:
helper.deleteEvent(events.get(longClickedItemIndex));
events.remove(longClickedItemIndex);
eventsAdapter.notifyDataSetChanged();
break;
}
return super.onContextItemSelected(item);
}
}
public class DatabaseHandlerEvent extends SQLiteOpenHelper {
static DatabaseHelperUser helper;
Event event;
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "Events";
private static final String TABLE_NAME = "Events";
private static final String COLUMN_ID = "id",
COLUMN_NAME = "name", COLUMN_LOCATION = "location", COLUMN_DATE = "date",
COLUMN_TIME ="time", COLUMN_DESCRIPTION = "description", COLUMN_USERNAME = "username";
SQLiteDatabase db;
public DatabaseHandlerEvent(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" +
COLUMN_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COLUMN_NAME + " TEXT, " + COLUMN_LOCATION + " TEXT, " +
COLUMN_DATE + " TEXT, " + COLUMN_TIME + " TEXT, " +
COLUMN_DESCRIPTION + " TEXT, " + COLUMN_USERNAME + " TEXT)"
);
}
public long createEvent (Event event) {
db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, event.getName());
values.put(COLUMN_LOCATION, event.getLocation());
values.put(COLUMN_DATE, event.getDate());
values.put(COLUMN_TIME, event.getTime());
values.put(COLUMN_DESCRIPTION, event.getDescription());
values.put(COLUMN_USERNAME, event.getUsername());
long result = db.insert(TABLE_NAME, null, values);
db.close();
return result;
}
public int updateEvent(Event event) {
db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(COLUMN_NAME, event.getName());
values.put(COLUMN_LOCATION, event.getLocation());
values.put(COLUMN_DATE, event.getDate());
values.put(COLUMN_TIME, event.getTime());
values.put(COLUMN_DESCRIPTION, event.getDescription());
int rowsAffected = db.update(TABLE_NAME, values, COLUMN_ID + "=?",
new String[]{String.valueOf(event.getId())});
db.close();
return rowsAffected;
}
public List<Event> getAllEvent(String Username) {
List<Event> events = new ArrayList<Event>();
db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME +" WHERE "+COLUMN_USERNAME+" = "+ "'"+Username+"'", null);
if (cursor.moveToFirst()) {
do {
events.add(new Event(Integer.parseInt(cursor.getString(0)),
cursor.getString(1), cursor.getString(2),
cursor.getString(3), cursor.getString(4),
cursor.getString(5), cursor.getString(6)));
} while (cursor.moveToNext());
}
cursor.close();
db.close();
return events;
}
public int getEventCount() {
db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
int count = cursor.getCount();
cursor.close();
db.close();
return count;
}
public int deleteEvent(Event event) {
db = this.getWritableDatabase();
int rowsAffected = db.delete(TABLE_NAME, COLUMN_ID + "=?",
new String[]{String.valueOf(event.getId())});
db.close();
return rowsAffected;
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String query = "DROP TABLE IF EXISTS "+TABLE_NAME;
db.execSQL(query);
this.onCreate(db);
}
}