[英]How can I retain the particular text of a slide on orientation change?
我的應用程序中有一個幻燈片,每張幻燈片都有一些文本。 文字和圖像是動態的。 如何在方向更改時保留特定幻燈片的文本,以便在方向更改后視圖保持不變。我基本上想知道更改方向的幻燈片編號或索引。
我正在做的事情如下:
@Override
public Object onRetainNonConfigurationInstance() {
ArrayList<Object> objList = new ArrayList<Object>();
Bitmap bitmapList[] = null;
String data = "";
try {
bitmapList = new Bitmap[slides.size()];
Log.e("ON", "onRetainNonConfigurationInstance() ");
if (gallery != null) {
for (int i = 0; i < imgViews.length; i++) {
LoaderImageView loaderImageView = imgViews[i];
if (loaderImageView != null) {
Bitmap bitmap = loaderImageView.getImageBitmap();
data = slides.get(i).getBody();
//System.out.println("the body text is: " + data);
if (bitmap != null) {
bitmapList[i] = new BitmapDrawable(bitmap).getBitmap();
}
}
}
}
objList.add(bitmapList);
objList.add(isDisplayingText);
objList.add(data);
} catch (Exception e) {
Log.e("Exception ", "LargeSlideShow.onRetain Message = " + e.toString());
} catch (Error e) {
Log.e("Error ", "LargeSlideShow.onRetain Message = " + e.toString());
}
return objList;
}
在 onCreate 中,我是這樣做的:
onCreate()
{ ...
ArrayList<Object> obj1 = (ArrayList<Object>) getLastNonConfigurationInstance();
if (obj1 != null) {
bitmaps = (Bitmap[]) obj1.get(0);
boolean isText = (Boolean) obj1.get(1);
String data = (String) obj1.get(2);
System.out.println("The Text received in on Create is: " + data);
if (isText == true) {
int vis = disText.getVisibility();
if (vis == View.GONE) {
String formattedBody = makeFormattedBody(data);
webView.loadData(formattedBody, "webView/html", "utf-8");
disText.setVisibility(View.VISIBLE);
disText.startAnimation(animShow);
isDisplayingText = true;
} else if (vis == View.VISIBLE) {
disText.startAnimation(animHide);
disText.setVisibility(View.GONE);
isDisplayingText = false;
}
}
... }
我在哪里錯過了鏡頭,請告訴我。 任何幫助表示贊賞。
您需要在您的活動中覆蓋“onConfigurationChanged”function 並使活動能夠處理清單中的更改。xml:
<activity android:name=".SlideView" android:configChanges="orientation"> </activity>
然后您可以再次設置您的視圖:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.oneSlide);
setUpView(); // configure the view e.g. add the picture and the text
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.