【发布时间】:2016-02-08 12:09:20
【问题描述】:
我正在做一个在 android 上询问真假问题的项目。在询问时,它会将问题、给定答案和正确答案收集到一个Results[] 对象数组中。用户完成问题后,ResultsActivity 开始,我正在努力以以下格式显示结果:
第 1 行:第一个问题
第2行:正确答案,用户的答案
第 3 行:第二个问题
....
我将附上ResultsActivity 和content_results.xml。你能帮我走上正确的道路吗?
public class ResultsActivity extends AppCompatActivity {
private TextView questionText;
private TextView resultText;
private TextView givenText;
private LinearLayout rContent;
private LinearLayout rSecondaryContent;
private void ResultQuestionFiller(int i){
rContent = (LinearLayout) findViewById(R.id.results_content);
questionText = new TextView(this);
ViewGroup.LayoutParams fullWidth = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
questionText.setText(Results.True_False_Results[i].getQuestionResourceId());
rContent.addView(questionText, fullWidth);
}
private void ResultAnswerFiller(int i){
rSecondaryContent = (LinearLayout) findViewById(R.id.results_content_secondary);
resultText = new TextView(this);
ViewGroup.LayoutParams splitWidth = new ViewGroup.LayoutParams(100, ViewGroup.LayoutParams.WRAP_CONTENT);
if (Results.True_False_Results[i].isTFgivenAnswer() == Results.True_False_Results[i].isTFcorrectAnswer()){
resultText.setText(R.string.right_answer);
resultText.setTextColor(Color.parseColor("#009933"));
}
else{
resultText.setText(R.string.false_answer);
resultText.setTextColor(Color.RED);
}
givenText = new TextView(this);
givenText.setText(String.valueOf(Results.True_False_Results[i].isTFcorrectAnswer()));
rSecondaryContent.addView(givenText,splitWidth);
rSecondaryContent.addView(resultText, splitWidth);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_results);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
for (int i = 0; i < Results.True_False_Results.length; i++ ){
ResultQuestionFiller(i);
ResultAnswerFiller(i);
}
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
还有xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_vertical_margin"
android:paddingRight="@dimen/activity_vertical_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
tools:context="hu.david.szablyteszt.ResultsActivity"
tools:showIn="@layout/activity_results">
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/scrollView">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/results_content">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/results_content_secondary"/>
</LinearLayout>
</ScrollView>
</LinearLayout>
使用该代码,我不断得到以下结果:
第 1 行:所有正确答案,用户在一行中回答。
第 2 行:问题 1
第 3 行:问题 2
...
【问题讨论】:
-
通过自定义布局更好地使用适配器和列表视图。
-
@Rohit5k2 这不是他的问题。看起来他还在努力学习,所以我认为列表视图可以等待。我确实同意这会更好。那就是说; @DávidCsurgó
rSecondaryContent是水平的,你每次都在附加它。这就是为什么您会在顶部的一行中看到所有正确答案和用户答案(它是rContent的第一个孩子)