存储Seekbar值但继续得到我必须使用final

时间:2016-03-19 15:47:47

标签: android development-environment final calculated-field

"在内部类中访问变量需要声明为final#34;是我最初得到的错误。所以我把它改成最后的。一旦我将其更改为final,我会得到一个不同的错误说"无法为最终变量"分配值。我有点像这里要做的那样。它给了我关于int exam_grade的错误

    public class CalculateGradeActivity extends Activity {



@Override
protected void onCreate(Bundle savedInstanceState) {


    super.onCreate(savedInstanceState);
    setContentView(R.layout.calculate_grade_view);
    seekbar();



}
public void seekbar(){
    SeekBar seek_bar1 = (SeekBar) findViewById(R.id.seekBarExam);


    final TextView text_view = (TextView) findViewById(R.id.percentageSeekbar1);



    int exam_grade;
    TextView text_view5 = (TextView) findViewById(R.id.numeric_grade_id_output);
    text_view5.setText(String.valueOf(exam_grade));


    int progress = seek_bar1.getProgress();
    text_view.setText(String.valueOf(progress));




    seek_bar1.setOnSeekBarChangeListener(

            new SeekBar.OnSeekBarChangeListener() {

                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    exam_grade = progress;
                    text_view.setText(String.valueOf(progress) + "%");


                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {

                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {

                }
            }
    );








}//ends seekbar function

}

2 个答案:

答案 0 :(得分:2)

您好,不要将textview声明为final,而是将其放在class属性中。

public class CalculateGradeActivity extends Activity {

    TextView text_view;
    SeekBar seek_bar1


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.calculate_grade_view);
    seek_bar1 = (SeekBar) findViewById(R.id.seekBarExam);
    text_view = (TextView) findViewById(R.id.percentageSeekbar1);
    seekbar();

}

对所有视图执行相同操作(将它们声明为属性)。

答案 1 :(得分:0)

final表示只能分配一次。 我确信textview不应该是最终的。 无论如何, 尝试将考试成绩和TextView的声明放在你的onCreate ......

     setContentView(R.layout.calculate_grade_view);
     int exam_grade;
     TextView text_view = (TextView) findViewById(R.id.percentageSeekbar1);
     seekbar();