使用的TextView阵列问卷应用程序(Using textView arrays for ques

2019-10-21 18:32发布

我想建立与单独显示和问题的调查问卷类型的应用程序,当用户提交一个答案,点击数据存储在上面一个TextView按钮和问题要问哪里这个问题的答案存储在一个新的TextView接下来的问题。 我有困难得到改变下一个问题的问题。

下面我用数组方法尝试但都在这里得到了错误

myTexts[0]=findViewById(R.id.question1);
myTexts[1]=findViewById(R.id.question2); 

- 和

 myTexts[questionNumber].setText(mEdit.getText().toString());
 questionNumber++;

下面是完整的源代码:

package com.example.greg;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class menu extends Activity {

Button   mButton;
EditText mEdit;


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    mButton = (Button)findViewById(R.id.button);
    mEdit   = (EditText)findViewById(R.id.userAnswereditText);

    TextView [] myTexts = new TextView[2];
    myTexts[0]=findViewById(R.id.question1);
    myTexts[1]=findViewById(R.id.question2);

    int questionNumber = 0;
    mButton.setOnClickListener(
    new View.OnClickListener()
       {
            public void onClick(View view)
            {

                myTexts[questionNumber].setText(mEdit.getText().toString());
                questionNumber++;   
            }
        });


}

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    super.onPause();
}

}

Answer 1:

要改变的问题,你应该有字符串或字符串列表的阵列,可以容纳所有的问题,只要点击按钮,答案存储在TextView中,你会加载这个数组或字符串列表持有该下一个问题问题。

 String [] questions;
 int numberOfQuestions = 2;

然后在onCreate()方法

 questions=new String[numberOfQuestions];//numberOfQuestion refers to integer that holds total number of questions
 questions[0]="This is first question?";
 questions[1]="This is second question?";

现在在你的view.onClickListener

mButton.setOnClickListener(
new View.OnClickListener()
   {
        public void onClick(View view)
        {

            myTexts[questionNumber].setText(mEdit.getText().toString());
            questionNumber++;   
            //here you will have to load the next question 
            if(questionNumber < numberOfQuestions)
                questionTextViewHolder.setText(questions[questionNumber]);
            else
                Toast.makeText(menu.this,"No more questions!",Toast.LENGTHLONG).show();

            //Note one thing that your questionNumber variable should not increase myTexts length or questions length because if it does you will get  exception
        }
    });

questionTextViewHolder是TextView的要在其中显示的问题,也就是要回答,你将与你的TextView要在其中显示的问题,以取代“questionTextViewHolder”! 类名菜单首字母应该大写,如果你遵循的编码约定。



Answer 2:

不应该这样...

myTexts[0]=findViewById(R.id.question1);

是投给TextView呢?...

myTexts[0]=(TextView)findViewById(R.id.question1);

这肯定会消除ClassCastException



文章来源: Using textView arrays for questionnaire app