我被要求在Android上构建一个可能包含用户问题的调查应用程序,问题可能会在一段时间后改变,也可能会有所回答。 答案的性质可能以收音机,复选框,下拉菜单或纯文本的形式出现。
我想通过SQL数据库来做到这一点。它将从主表中获取问题并从详细信息表中回答选项,并相应地动态设计活动布局。
这是可能的还是有其他方法可以做同样的事情。
答案 0 :(得分:0)
这可以通过多种方式完成。您可以为每种类型的布局创建自定义视图,并根据从数据库中提取的类型问题来扩充所需的视图。 您也可以使用简单的XML布局而不是自定义视图。使用自定义视图的好处是,您可以在视图中预定义事件和其他内容,以便于重用。
这里有几个教程可以给你一个想法。 http://www.vogella.com/tutorials/AndroidCustomViews/article.html#tutorial_compoundcontrols3 https://www.intertech.com/Blog/android-custom-view-tutorial-part-1-combining-existing-views/
答案 1 :(得分:0)
老实说,如果您不确定如何开始,那么您将无法获得任何答案,为您提供足够详细的信息。分解很简单,但比你意识到的复杂得多。
然而......基本上你需要:
在编码任何东西之前,上面的确需要精心设计。仔细考虑,只使用上述指南。
您的用户界面应该是动态的。使用list / recycler视图等允许您插入数据行的内容。然后,您可以为复选框答案,无线电答案创建XML布局,并根据需要插入这些布局。
同样,您需要考虑,是否会在列表中显示所有问题/答案,是否会逐个显示并以向导式方式移至...
正如我所说,你不会得到一个完整详细的答案,因为很多这不是编码,它的思考和设计。
我希望上述内容可以帮助您粗略地了解您需要做什么以及如何处理它。不要有任何幻想,这将很快做到。在设计编码之前花费相当多的时间,因为编码很容易......这里最重要的设计是花费时间。
答案 2 :(得分:0)
我做了一个只包含动态问题和答案的项目。首先你必须以编程方式创建布局。
RelativeLayout layout = new RelativeLayout();
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
将规则添加到该布局。
params.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
然后创建您的视图,然后设置如下所示的属性。
EditText edittext = new EditText()
editext.setId(1);
editext.setInputType(InputType.TYPE_CLASS_TEXT);
editext.setGravity(Gravity.TOP);
多数民众赞成你以编程方式创建了一个视图。然后,您可以将您的孩子添加到父视图。
layout.addView(edittext);
您可以通过执行此操作创建多个布局和多个视图。考虑一下。不要忘记将子布局添加到父布局。继续编码..