我想编辑列表视图中的项目。(该编辑选项应仅对一个用户可用)。 怎么做? 有人可以帮我吗?
我已经创建了一个列表视图以在其中添加项目。
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DATABASE_NAME = "users.db";
public static final String TABLE_NAME = "users_data";
public static final String COL1 = "ID";
public static final String ROW2 = "FIRSTNAME";
public static final String COL3 = "LASTNAME";
public static final String COL4 = "FAVFOOD";
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
" FIRSTNAME TEXT, LASTNAME TEXT, FAVFOOD TEXT)";
db.execSQL(createTable);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP IF TABLE EXISTS " + TABLE_NAME);
onCreate(db);
}
public boolean addData(String fName, String lName, String fFood) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(ROW2, fName);
contentValues.put(COL3, lName);
contentValues.put(COL4, fFood);
long result = db.insert(TABLE_NAME, null, contentValues);
//if date as inserted incorrectly it will return -1
if (result == -1) {
return false;
} else {
return true;
}
}
//query for 1 week repeats
public Cursor getListContents() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor data = db.rawQuery("SELECT * FROM " + TABLE_NAME, null);
return data;
}
}
---------------------------------------------------------------------------
public class ViewListContents extends AppCompatActivity {
DatabaseHelper myDB;
ArrayList<User> userList;
ListView listView;
User user;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewcontents_layout);
myDB = new DatabaseHelper(this);
userList = new ArrayList<>();
Cursor data = myDB.getListContents();
int numRows = data.getCount();
if(numRows == 0){
Toast.makeText(ViewListContents.this,"The Database is empty :(.",Toast.LENGTH_LONG).show();
}else{
int i=0;
while(data.moveToNext()){
user = new User("Name - "+data.getString(1),"Mail:id - "+data.getString(2),"Mobile no. - "+data.getString(3));
userList.add(i,user);
System.out.println(data.getString(1)+" "+data.getString(2)+" "+data.getString(3));
System.out.println(userList.get(i).getFirstName());
i++;
}
ThreeColumn_ListAdapter adapter = new ThreeColumn_ListAdapter(this,R.layout.list_adapter_view, userList);
listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
}
}
}
-------------------------------------------------------------------------
public class ThreeColumn_ListAdapter extends ArrayAdapter<User> {
private LayoutInflater mInflater;
private ArrayList<User> users;
private int mViewResourceId;
public ThreeColumn_ListAdapter(Context context, int textViewResourceId, ArrayList<User> users) {
super(context, textViewResourceId, users);
this.users = users;
mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
mViewResourceId = textViewResourceId;
}
public View getView(int position, View convertView, ViewGroup parent) {
convertView = mInflater.inflate(mViewResourceId, null);
User user = users.get(position);
if (user != null) {
TextView firstName = (TextView) convertView.findViewById(R.id.textFirstName);
TextView lastName = (TextView) convertView.findViewById(R.id.textLastName);
TextView favFood = (TextView) convertView.findViewById(R.id.textFavFood);
if (firstName != null) {
firstName.setText(user.getFirstName());
}
if (lastName != null) {
lastName.setText((user.getLastName()));
}
if (favFood != null) {
favFood.setText((user.getFavFood()));
}
}
return convertView;
}
}