【发布时间】:2018-05-10 23:05:04
【问题描述】:
好的,所以我试图在这里了解所有这些其他问题,但我没有掌握它,所以我决定自己问。 我有一个带有不同片段的主活动来更改视图(使用 Android 标准侧边栏活动模板)。从那里,用户通过返回值的单独 Acitivty 创建任务。在主活动中,任务被存储到 SQLite 数据库中。到目前为止它有效。
现在我有了带有相应布局 TaskList_main.xml 的 Fragment TaskList。在这个 XML 文件中,我得到了一个简单的 ListView,我想用数据库中的值填充它。我的问题是在哪里编写该方法以及何时访问它。该方法将是
public void showAllListEntries() {
List<TaskData> TaskList = datasource.getAllTasks();
//Daten werden im ArrayAdapter gespeichert
ArrayAdapter<TaskData> TaskListArrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, TaskList);
ListView TaskDataListView = (ListView) findViewById(R.id.TaskListView);
TaskDataListView.setAdapter(TaskListArrayAdapter);
}
我的 Fragment 像这个 atm 一样是空的
public class TaskList extends Fragment {
View view;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
view = inflater.inflate(R.layout.activity_main_tasklist, container, false);
return view;
}
}
如果你愿意,我也可以发送主 Activity,但它有点乱
那么有人可以告诉我如何让它工作吗?我是否清楚地解释了我的问题?
【问题讨论】:
-
我的 Android 有点生疏了,但如果我理解正确的话,最合乎逻辑的放置
showAllListEntries()方法的位置应该是在TaskList片段中...... -
然后 id 必须在那里创建我的数据源,到目前为止没有问题,但我无法从 Fragment 获得对我的列表视图的引用,因为 Fragment 不知道“findViewById”方法
-
您可以在
onViewCreated中获得对ListView的引用 - 请参阅stackoverflow.com/questions/6495898/findviewbyid-in-fragment。对于数据源 - 您可以将其引用从您的Activity传递给Fragment或使用单例。 -
现在什么是单例?
标签: java android sqlite android-layout android-fragments