Я использую ProgressBar
, чтобы отобразить процент вопросов, заданных в моем приложении.
Однако я сталкиваюсь со странной проблемой, когда метод действия onCreate
снова вызывается (вращается, изменяет размер ..), отображение прогресса ProgressBar
становится очень странным.
Я отлаживаю код, но все в порядке, значения setMax () и setProgress () также верны.
Первая загрузка:
Экран изменения размера:
Мой onCreate
метод:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_practice_type_list);
LayoutInflater inflater = (LayoutInflater) this.getSystemService(this.LAYOUT_INFLATER_SERVICE);
Bundle b = getIntent().getExtras();
int practiceType = b.getInt("practiceType");
int level = b.getInt("level");
DatabaseAccess databaseAccess = DatabaseAccess.getInstance(this);
databaseAccess.open();
ArrayList<BookInfoByTypeModel> bookInfo = databaseAccess.getBookInfoByType(level, practiceType);
databaseAccess.close();
ScrollView scrollView = (ScrollView)findViewById(R.id.practice_type_layout_scrollview);
LinearLayout topParent = new LinearLayout(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER;
topParent.setLayoutParams(params);
topParent.setOrientation(LinearLayout.VERTICAL);
View viewTypeItem;
TextView tvTypeThumbnail;
TextView tvTypeName;
TextView tvTypeCount;
ProgressBar pbTypeProgressPercent;
TextView tvTypeProgressText;
for (int i = 0; i < bookInfo.size(); i++) {
BookInfoByTypeModel book = bookInfo.get(i);
viewTypeItem = inflater.inflate(R.layout.type_item, scrollView, false);
tvTypeThumbnail = (TextView) viewTypeItem.findViewById(R.id.type_thumbnail);
tvTypeName = (TextView) viewTypeItem.findViewById(R.id.type_name);
tvTypeCount = (TextView) viewTypeItem.findViewById(R.id.type_count);
pbTypeProgressPercent = (ProgressBar) viewTypeItem.findViewById(R.id.type_progress_percent);
tvTypeProgressText = (TextView) viewTypeItem.findViewById(R.id.type_progress_text);
switch (book.getType()){
case 0:
tvTypeThumbnail.setText("字");
tvTypeName.setText("漢字・語彙");
break;
case 1:
tvTypeThumbnail.setText("漢");
tvTypeName.setText("漢字");
break;
case 2:
tvTypeThumbnail.setText("語");
tvTypeName.setText("語彙");
break;
case 3:
tvTypeThumbnail.setText("文");
tvTypeName.setText("文法");
break;
case 4:
tvTypeThumbnail.setText("読");
tvTypeName.setText("読解");
break;
case 5:
tvTypeThumbnail.setText("聴");
tvTypeName.setText("聴解");
break;
case 6:
tvTypeThumbnail.setText("総");
tvTypeName.setText("総合");
break;
}
tvTypeCount.setText("問題集数:" + book.getBookCount());
tvTypeProgressText.setText(book.getProgressCount() + "/" + book.getBookCount());
pbTypeProgressPercent.setMax(book.getBookCount());
pbTypeProgressPercent.setProgress(book.getProgressCount());
topParent.addView(viewTypeItem);
}
scrollView.addView(topParent);
}
Что я здесь не так делаю?