Android 显示seekbar的上一个值
我正在数据库中存储一些评分。每当移动seekbar时,这些评分都会显示在textview中。但问题是,每当我向后移动拇指时,都不会显示向后的值。它只显示最后一个值。当我向后移动拇指时,如何显示评分。我试过的代码是-Android 显示seekbar的上一个值,android,android-seekbar,Android,Android Seekbar,我正在数据库中存储一些评分。每当移动seekbar时,这些评分都会显示在textview中。但问题是,每当我向后移动拇指时,都不会显示向后的值。它只显示最后一个值。当我向后移动拇指时,如何显示评分。我试过的代码是- public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { view = inflater.inflate(R.layo
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
{
view = inflater.inflate(R.layout.interval, container, false);
seekbar=(SeekBar)view.findViewById(R.id.seekBar1);
ques = (TextView)view. findViewById(R.id.question);
textrating=(TextView)view.findViewById(R.id.textRating);
/*l1=(LinearLayout)view.findViewById(R.id.linear);*/
db=new DatabaseHandler(getActivity());
retrieveQuestion();
retrieveRating();
seekbar.setProgress(0);
seekbar.incrementProgressBy(diff);
seekbar.setMax(ratinglast);
seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
{
@Override
public void onProgressChanged(SeekBar seekbar, int progress, boolean fromuser)
{
Log.e("DEBUG", "Progress is: "+progress);
if(j<len)
{
progress=rating[j];
j++;
textrating.setText(""+progress);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekbar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekbar)
{
// TODO Auto-generated method stub
}
});
return view;
}
void retrieveQuestion()
{
db.open();
Cursor c=db.getQuestion(username,surveyName,selectedQues,question_no);
if(c.moveToFirst())
{
int index=c.getColumnIndex("question");
question1= c.getString(index);
ques.setText(question1);
}
}
public void retrieveRating()
{
Cursor c=db.getAnswer(username, surveyName, selectedQues, question_no);
len=c.getCount();
Log.e("len",""+len);
if(c.moveToFirst())
{
do
{
int index=c.getColumnIndex("answer");
rating[i]=c.getInt(index);
Log.e("i",""+i);
Log.e("rating in do while",""+rating[i]);
i++;
}while(c.moveToNext());
}
rating1=rating[0];
rating2=rating[1];
diff=rating2-rating1;
Log.e("diff",""+diff);
ratinglast=rating[len-1];
Log.e("ratinglast",""+ratinglast);
}
}
创建视图时的公共视图(布局、充气机、视图组容器、捆绑包保存状态)
{
视图=充气机。充气(右布局间隔,容器,假);
seekbar=(seekbar)view.findViewById(R.id.seekBar1);
ques=(TextView)view.findViewById(R.id.question);
textrating=(TextView)view.findViewById(R.id.textrating);
/*l1=(LinearLayout)view.findViewById(R.id.linear)*/
db=新的DatabaseHandler(getActivity());
检索问题();
检索();
seekbar.setProgress(0);
seekbar.incrementProgressBy(差异);
见kbar.setMax(额定值最后);
seekbar.setonseekbarchaneglistener(新的onseekbarchaneglistener()
{
@凌驾
public void onProgressChanged(SeekBar-SeekBar、int-progress、boolean-fromuser)
{
Log.e(“调试”,“进度为:”+进度);
如果(j我已经为我的问题找到了另一种解决方案- 我实现的代码是:
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
{
view = inflater.inflate(R.layout.interval, container, false);
seekbar=(SeekBar)view.findViewById(R.id.seekBar1);
ques = (TextView)view. findViewById(R.id.question);
textrating=(TextView)view.findViewById(R.id.textRating);
db=new DatabaseHandler(getActivity());
retrieveQuestion();
retrieveRating();
seekbar.setProgress(0);
//ratinglast is last rating
seekbar.setMax(ratinglast);
seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
{
@Override
public void onProgressChanged(SeekBar seekbar, int progress, boolean fromuser)
{
Log.e("DEBUG", "Progress is: "+progress);
//diff is difference between two ratings.
progress = ((int)Math.round(progress/diff ))*diff;
seekbar.setProgress(progress);
textrating.setText(progress + "");
}
@Override
public void onStartTrackingTouch(SeekBar seekbar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekbar)
{
}
});
return view;
}
//Method to retrieve rating from sqlite database
public void retrieveRating()
{
Cursor c=db.getAnswer(username, surveyName, selectedQues, question_no);
len=c.getCount();
Log.e("len",""+len);
if(c.moveToFirst())
{
do
{
int index=c.getColumnIndex("answer");
rating[i]=c.getInt(index);
Log.e("i",""+i);
Log.e("rating in do while",""+rating[i]);
i++;
}while(c.moveToNext());
}
rating1=rating[0];
rating2=rating[1];
diff=rating2-rating1;
Log.e("diff",""+diff);
ratinglast=rating[len-1];
Log.e("ratinglast",""+ratinglast);
}