getter 和 setter 来自数据库 android
getter and setter from database android
我正在尝试从数据库 table 中获取完整的行,我在其中发送 ID 并接收完整的详细信息
这是我的数据库:
public ArrayList<Item> GetProjectToMoreDetails(String id) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase ();
int ID = Integer.parseInt (id);
Cursor cursor = sqLiteDatabase.rawQuery ("select * from " + Projects_TABLE + " where " + PRO_ID + " = " + ID , null);
ArrayList<Item> ProjectsArchive = new ArrayList<>();
if (cursor != null) {
cursor.moveToFirst ();
for (int i = 0 ; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
Item data = new Item();
data.setProjectName( cursor.getString( cursor.getColumnIndex( PRO_NAME )) );
data.setPrice("$" + String.valueOf( cursor.getInt( cursor.getColumnIndex( PRO_GOAL )) ) );
ProjectsArchive.add(data);
cursor.moveToNext ();
}
cursor.close ();
}else if (cursor == null){
return null;
}
return ProjectsArchive;
}
这是 Getter 和 setter 内部项目 Class:
public String getProjectName() {
return ProjectName;}
public void setProjectName(String projectName) {
this.ProjectName = projectName;}
public String getPrice() {
return price;}
public void setPrice(String price) {
this.price = price;}
我试着这样称呼它,但它一直从这里返回 null
Item item = new Item();
DataBaseHelper dataBaseHelper = new DataBaseHelper( getActivity() );
dataBaseHelper.GetProjectToMoreDetails( ProjectId );
ProjectName.setText( item.getPrice() );
ProjectPrice.setText( item.getPrice() );
ArrayList<Item> itemList = dataBaseHelper.GetProjectToMoreDetails( ProjectId );
for(int i=0;i<itemList.size();i++){
ProjectName.setText( itemList.get(i).getPrice() );
ProjectPrice.setText( itemList.get(i).getPrice() );
}
检查代码片段。你需要这样做。
用以下代码替换您的 GetProjectToMoreDetails 方法。
public ArrayList<Item> GetProjectToMoreDetails(String id) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase ();
int ID = Integer.parseInt (id);
Cursor cursor = sqLiteDatabase.rawQuery ("select * from " + Projects_TABLE + " where " + PRO_ID + " = " + ID , null);
ArrayList<Item> ProjectsArchive = new ArrayList<>();
if (m_cursor != null) {
if (m_cursor.getCount() > 0 && m_cursor.moveToFirst()) {
do {
Item data = new Item();
data.setProjectName( cursor.getString( cursor.getColumnIndex( PRO_NAME )) );
data.setPrice("$" + String.valueOf( cursor.getInt( cursor.getColumnIndex( PRO_GOAL )) ) );
ProjectsArchive.add(data);
}while (m_cursor.moveToNext());
}
cursor.close ();
}else if (cursor == null){
return null;
}
return ProjectsArchive;
}
并通过以下方式获取数据
ArrayList<Item> itemList = dataBaseHelper.GetProjectToMoreDetails( ProjectId );
for(int i=0;i<itemList.size();i++){
ProjectName.setText( itemList.get(i).getPrice() );
ProjectPrice.setText( itemList.get(i).getPrice() );
}
替换
Item item = new Item();
DataBaseHelper dataBaseHelper = new DataBaseHelper( getActivity() );
dataBaseHelper.GetProjectToMoreDetails( ProjectId );
ProjectName.setText( item.getPrice() );
ProjectPrice.setText( item.getPrice() );
和
DataBaseHelper dataBaseHelper = new DataBaseHelper( getActivity() );
ArrayList<Item> ProjectsArchive=dataBaseHelper.GetProjectToMoreDetails( ProjectId );
ProjectName.setText( ProjectsArchive.get(0).getProjectName() );
ProjectPrice.setText( ProjectsArchive.get(0).getPrice() );
注意:- 这只会打印第一项的值,要获取列表中的所有值,您应该使用 recyclerview 并在回收器适配器中迭代 ProjectsArchive
我正在尝试从数据库 table 中获取完整的行,我在其中发送 ID 并接收完整的详细信息 这是我的数据库:
public ArrayList<Item> GetProjectToMoreDetails(String id) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase ();
int ID = Integer.parseInt (id);
Cursor cursor = sqLiteDatabase.rawQuery ("select * from " + Projects_TABLE + " where " + PRO_ID + " = " + ID , null);
ArrayList<Item> ProjectsArchive = new ArrayList<>();
if (cursor != null) {
cursor.moveToFirst ();
for (int i = 0 ; i < cursor.getCount(); i++) {
cursor.moveToPosition(i);
Item data = new Item();
data.setProjectName( cursor.getString( cursor.getColumnIndex( PRO_NAME )) );
data.setPrice("$" + String.valueOf( cursor.getInt( cursor.getColumnIndex( PRO_GOAL )) ) );
ProjectsArchive.add(data);
cursor.moveToNext ();
}
cursor.close ();
}else if (cursor == null){
return null;
}
return ProjectsArchive;
}
这是 Getter 和 setter 内部项目 Class:
public String getProjectName() {
return ProjectName;}
public void setProjectName(String projectName) {
this.ProjectName = projectName;}
public String getPrice() {
return price;}
public void setPrice(String price) {
this.price = price;}
我试着这样称呼它,但它一直从这里返回 null
Item item = new Item();
DataBaseHelper dataBaseHelper = new DataBaseHelper( getActivity() );
dataBaseHelper.GetProjectToMoreDetails( ProjectId );
ProjectName.setText( item.getPrice() );
ProjectPrice.setText( item.getPrice() );
ArrayList<Item> itemList = dataBaseHelper.GetProjectToMoreDetails( ProjectId );
for(int i=0;i<itemList.size();i++){
ProjectName.setText( itemList.get(i).getPrice() );
ProjectPrice.setText( itemList.get(i).getPrice() );
}
检查代码片段。你需要这样做。
用以下代码替换您的 GetProjectToMoreDetails 方法。
public ArrayList<Item> GetProjectToMoreDetails(String id) {
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase ();
int ID = Integer.parseInt (id);
Cursor cursor = sqLiteDatabase.rawQuery ("select * from " + Projects_TABLE + " where " + PRO_ID + " = " + ID , null);
ArrayList<Item> ProjectsArchive = new ArrayList<>();
if (m_cursor != null) {
if (m_cursor.getCount() > 0 && m_cursor.moveToFirst()) {
do {
Item data = new Item();
data.setProjectName( cursor.getString( cursor.getColumnIndex( PRO_NAME )) );
data.setPrice("$" + String.valueOf( cursor.getInt( cursor.getColumnIndex( PRO_GOAL )) ) );
ProjectsArchive.add(data);
}while (m_cursor.moveToNext());
}
cursor.close ();
}else if (cursor == null){
return null;
}
return ProjectsArchive;
}
并通过以下方式获取数据
ArrayList<Item> itemList = dataBaseHelper.GetProjectToMoreDetails( ProjectId );
for(int i=0;i<itemList.size();i++){
ProjectName.setText( itemList.get(i).getPrice() );
ProjectPrice.setText( itemList.get(i).getPrice() );
}
替换
Item item = new Item();
DataBaseHelper dataBaseHelper = new DataBaseHelper( getActivity() );
dataBaseHelper.GetProjectToMoreDetails( ProjectId );
ProjectName.setText( item.getPrice() );
ProjectPrice.setText( item.getPrice() );
和
DataBaseHelper dataBaseHelper = new DataBaseHelper( getActivity() );
ArrayList<Item> ProjectsArchive=dataBaseHelper.GetProjectToMoreDetails( ProjectId );
ProjectName.setText( ProjectsArchive.get(0).getProjectName() );
ProjectPrice.setText( ProjectsArchive.get(0).getPrice() );
注意:- 这只会打印第一项的值,要获取列表中的所有值,您应该使用 recyclerview 并在回收器适配器中迭代 ProjectsArchive