我创建了这个应用程序,但在添加了显示功能的标记.....
即使有很多工作我也无法调试
他们没有让我发帖,因为主要有代码( Google服务条款 最后修改日期:2017年10月25日(查看存档版本)
欢迎使用Google! 感谢您使用我们的产品和服务(“服务”)。服务由Google LLC(“Google”)提供,位于美国加利福尼亚州山景市,Amphitheatre Parkway 1600号,邮编94043。
使用我们的服务即表示您同意这些条款。请仔细阅读。
我们的服务非常多样化,因此有时可能会适用其他条款或产品要求(包括年龄要求)。附加条款将与相关服务一起提供,如果您使用这些服务,这些附加条款将成为您与我们达成协议的一部分。)
package com.example.user.questions;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
import java.util.Arrays;
import static android.widget.Toast.makeText;
import static com.example.user.questions.R.string.your_answer;
public class MainActivity extends AppCompatActivity {
private Button mTrueButton;
private Button mFalseButton;
private TextView mQuestionTextView;
private Button mNextButton;
private static final String TAG = "QuizActivity";
private static final String KEY_INDEX = "index";
private int marksObtained = 0;
private TextView mShowAnswers;
//array for question
private Question[] mQuestionBank = new Question[]
{
new Question( R.string.question_inc , true ) ,
new Question( R.string.question_nda , true ),
new Question( R.string.question_sex , false )
};
private int mCurrentIndex = 0 ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
mTrueButton = findViewById( R.id.true_button );
mFalseButton = findViewById( R.id.false_button );
mNextButton = findViewById( R.id.next_button );
mQuestionTextView = findViewById( R.id.questions_text );
mShowAnswers = findViewById( R.id.show_result );
//using nezt button here cause it should implement before setting text og question
updateQuestion();
mNextButton.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length ;
updateQuestion();
showAnswers( mCurrentIndex );
}
} );
mTrueButton.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
checkAnswers( true );
mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length ;
updateQuestion();
showAnswers( mCurrentIndex );
}
} );
mFalseButton.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
checkAnswers( false );
mCurrentIndex = (mCurrentIndex + 1) % mQuestionBank.length ;
updateQuestion();
showAnswers( mCurrentIndex );
}
} );
}
private void updateQuestion() {
int questions = mQuestionBank[mCurrentIndex].getTextResId();
mQuestionTextView.setText( questions ); }
private void checkAnswers (boolean mUserPressedTrue){
boolean answerIsTrue = mQuestionBank[mCurrentIndex].isAnswerTrue();
int messageResId = 0;
if (answerIsTrue == mUserPressedTrue) {
messageResId = R.string.correct_toast;
marksObtained = marksObtained + 1 ;
} else {
messageResId = R.string.wrong_toast;
}
Toast.makeText( this , messageResId , Toast.LENGTH_SHORT ).show();
}
@Override
public void onSaveInstanceState (Bundle savedInstanceState){
super.onSaveInstanceState( savedInstanceState );
savedInstanceState.putInt( KEY_INDEX , mCurrentIndex );
}
public void showAnswers (int var){
if (var == 2) mShowAnswers.setText( marksObtained );
}
}
答案 0 :(得分:1)
mShowAnswers.setText( String.valueOf(marksObtained));
这一行包含错误。当您将文本设置为textview(mShowAnswers)并且marksObtained是整数值时,正在发生的事情是Android将此marksObtained整数值作为@StringRes并尝试从未找到的Strings.xml获取匹配的String值,因此显示例外。
在使用R.string从Strings.xml传递值之前,请不要在setText中传递整数值。
要解决请使用:
{{1}}