【发布时间】:2017-01-18 11:16:18
【问题描述】:
我是编程新手,我的代码需要一些帮助,我正在尝试使用一些按钮在 TextView 中显示一些字符串。 大致思路是当按下“next”按钮时,会显示字符串数组中的下一个字符串,当按下“previous”按钮时,会显示字符串数组中的上一个字符串。
(到目前为止,我的代码经验仅限于 c / c++,所以如果我的代码真的搞砸了,我真的很抱歉,因为我不使用 java 代码)
这是活动:
public class MainActivity extends AppCompatActivity {
int question_number = 0;
String[] mTestArray;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sample);
mTestArray = getResources().getStringArray(R.array.questions_array);
}
protected void nextQuestion()
{
int maxIndex = mTestArray.length;
if(question_number == maxIndex) showResult();
else
{
question_number++;
updateTextView(question_number);
}
}
protected void previousQuestion()
{
int minIndex = 0;
Button btnPrevious = (Button) findViewById(R.id.btnPrevious);
if (question_number == minIndex) btnPrevious.setEnabled(false);
else
{
question_number--;
updateTextView(question_number);
}
}
private void updateTextView(int i) {
TextView textView = (TextView)findViewById(R.id.txtQuestion);
textView.setText(mTestArray[i]);
}
private void showResult()
{
//show result
}
}
函数 nextQuestion 将显示字符串数组“questions_array”中的下一个字符串 函数 previousQuestion 将显示字符串数组“question_array”中的前一个字符串 并且函数 updateTextView 是在 TextView "txtQuestion" 中更改字符串的函数
这是xml文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<TextView
android:textAppearance="?android:textAppearanceLarge"
android:textColor="@color/black"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/btnNext"
android:layout_centerHorizontal="true"
android:layout_marginBottom="78dp"
android:id="@+id/txtQuestion"
/>
<Button
android:text="Previous"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnPrevious"
android:onClick="previousQuestion"
android:layout_below="@+id/txtQuestion"
android:layout_toLeftOf="@+id/btnNext"
android:layout_toStartOf="@+id/btnNext"
android:layout_marginRight="62dp"
android:layout_marginEnd="62dp" />
<Button
android:text="Next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="176dp"
android:id="@+id/btnNext"
android:onClick="nextQuestion"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="71dp"
android:layout_marginEnd="71dp" />
</RelativeLayout>
这是包含字符串数组的string.xml:
<resources>
<string name="app_name">My Application</string>
<string-array name="questions_array">
<item>Question 1</item>
<item>Question 2</item>
<item>Question 3</item>
<item>Question 4</item>
<item>Question 5</item>
<item>Question 6</item>
<item>Question 7</item>
<item>Question 8</item>
<item>Question 9</item>
<item>Question 10</item>
</string-array>
</resources>
我已尝试运行该应用程序,它运行时没有错误。但是,每当我尝试单击按钮时,应用程序将自动关闭并弹出此消息窗口:
很遗憾,我的应用程序已停止
抱歉我的英语不好,感谢之前的帮助!
【问题讨论】:
-
提示:定义一个计数器,everyOnClick 增加该值并从该索引处的数组中获取元素
-
question_number 始终为 0!您不会从计数器中添加或减去任何内容
-
对不起,我在活动中输入了错误的 java 代码,我已经尝试使用计数器增加每一次点击,但它仍然没有工作
-
当您的应用程序崩溃时发布您的堆栈跟踪总是更好,无论如何我仍然试图回答您的问题。如果这没有帮助,请连同错误日志一起发布。
标签: java android arrays string textview