这是对我有用的代码。
给数据库适配器内部的 getCurrentLists 方法一个参数。在片段活动开始时,它从主活动列表选择中获取项目 rowid 变量,并将其作为参数参数传递给游标以用于简单的游标适配器。
如果我没有使用正确的术语,请纠正我,这样我可以学得更快!感谢您的推动!
下面是我的 CurrentProjectDrafts.java
public class CurrentProjectDrafts extends Fragment {
NewProjectDatabaseAdapter db;
String sqlNewListProjectRowid;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.current_project_drafts_tab, container, false);
String project_rowid = getActivity().getIntent().getExtras().getString("project_rowid");
sqlNewListProjectRowid = project_rowid;
Toast.makeText(getActivity(), project_rowid, Toast.LENGTH_LONG).show();
try{
openDB();
NewProjectDatabaseAdapter dbFetch = new NewProjectDatabaseAdapter(getActivity());
} catch (SQLException e){
e.printStackTrace();
}
//Testing fetching projects info from database to populate list
Cursor cursor1 = null;
try {
cursor1 = NewProjectDatabaseAdapter.getCurrentLists(project_rowid);
} catch (SQLException e) {
e.printStackTrace();
}
getActivity().startManagingCursor(cursor1);
///setup mapping from cursor to view fields//////
String[] fromDatabase = new String[]
{NewProjectDatabaseAdapter.KEY_LIST_NAME};
int[] toList = new int[]
{R.id.project_name};
////create adapter to map columns of database to rows in listview
@SuppressWarnings("deprecation") final
SimpleCursorAdapter myCursorAdapter1 =
new SimpleCursorAdapter(
getActivity(),
R.layout.main_activity_projects_list_item,
cursor1,
fromDatabase,
toList,
0
);
ListView lv = (ListView) v.findViewById(R.id.currentProjectDraftList);
lv.setAdapter(myCursorAdapter1);
return v;
}
//This method creates a new instance of open database method in NewProjectDatabaseAdapter.java
private void openDB() throws SQLException {
db = new NewProjectDatabaseAdapter(getActivity());
NewProjectDatabaseAdapter.open();
}
}
这是在我的 NewProjectDatabaseAdapter.java
中创建的 fetch 方法
public static Cursor getCurrentLists(String project_rowid) throws SQLException
{
Cursor bCursor = ourDatabase.query(LISTS_TABLE, null, "project_rowid=?", new String[]{project_rowid}, null, null, null);
if (bCursor != null){
bCursor.moveToFirst();
}
return bCursor;
}