Android : mLayoutManager=新的GridLayoutManager(getActivity(),SPAN\u COUNT); mCurrentLayoutManagerType=LayoutManagerType.GRID\u LAYOUT\u MANAGER; 打破 案例线性布局管理器: mLayoutManager=新的LinearLayoutManager(getActivity()); mCurrentLayoutManagerType=LayoutManagerType.LINEAR\u LAYOUT\u MANAGER; 打破 违约: mLayoutManager=新的LinearLayoutManager(getActivity()); mCurrentLayoutManagerType=LayoutManagerType.LINEAR\u LAYOUT\u MANAGER; } mRecyclerView.setLayoutManager(mllayoutmanager); mRecyclerView.scrollToPosition(滚动位置); } @凌驾 SaveInstanceState上的公共无效(Bundle savedInstanceState){ //保存当前选定的布局管理器。 //保存当前选定的布局管理器。 //savedInstanceState.putSerializable(键布局管理器,mCurrentLayoutManagerType); //savedInstanceState.putSerializable(按键布局管理器,(可序列化)进度条); savedInstanceState.putParcelableArrayList(常量.MY_DATA_SET_PARCE_ABLE_ARRAY_KEY,mDataset); super.onSaveInstanceState(savedInstanceState); } /** *为RecyclerView的适配器生成字符串。这些数据通常会出现 *从本地内容提供商或远程服务器。 */ 私有void initDataset(){ if(mDataset.isEmpty()){ progressBar.setVisibility(View.VISIBLE); 新LoadRssFeedsItems().execute(“”); Log.i(标记“”+mDataset.size()); Log.i(标记“initDataset”); } } 公共类LoadRssFeedsItems扩展异步任务{ 私有字符串mTitle、mddescription、mLink、mPubDate; 私有字符串mcategrary,mImageLn; 私有字符串日期,mContent; 私人酒吧; 公共无效设置进度栏(进度栏){ 这个.bar=bar; } @凌驾 受保护的void onPreExecute(){ super.onPreExecute(); if(progressBar!=null){ progressBar.setVisibility(View.VISIBLE); } } @凌驾 受保护的void onProgressUpdate(void…值){ progressBar.setProgress(1); super.onProgressUpdate(值); } @凌驾 受保护的Void doInBackground(字符串…参数){ 文档rssDocument=null; 试一试{ rssDocument=Jsoup.connect(url).timeout(6000).ignoreContentType(true).parser(parser.xmlParser()).get(); 元素mItems=rssDocument.select(“项”); RssFeed-rssItem; 用于(图元:斜接){ mTitle=element.select(“title”).first().text(); mddescription=element.select(“description”).first().text(); mLink=element.select(“链接”).first().text(); mPubDate=element.select(“pubDate”).first().text(); mCategory=element.select(“category”).first().text(); mImageLn=element.select(“媒体内容”).attr(“url”).toString(); 日期=新的SimpleDataFormat(“dd MMM yyyy”)。格式(新日期()); mContent=element.select(“content | encoded”).first().text(); mContent=Jsoup.parse(mContent.text(); indexofp=mddescription.indexOf(常数P); indexOfPdash=mddescription.indexOf(常数P_-DASH); mddescription=mddescription.substring(indexofp+3,indexOfPdash); Log.i(标记,“项目标题:”+(mContent==null?“不适用”:mContent)); Log.i(标记,“项目标题:”+(mTitle==null?“不适用”:mTitle)); Log.i(标记,“项目描述:”+(mDescription==null?“不适用”:mDescription)); Log.i(标记,“项目链接:”+(mLink==null?“不适用”:mLink)); Log.i(标记,“项数据:”+(mImageLn==null?“N/A”:mImageLn)); Log.i(标记,“项目数据:”+(mPubDate==null?“不适用”:mPubDate)); Log.i(标记“系统日期:”+(日期==null?“不适用”:日期)); rssFeed=新的rssFeed(mTitle、mLink、mPubDate、mCategory、mLink、mddescription、mImageLn、context、mContent); mDataset.add(rssFeed); } }捕获(IOE异常){ e、 printStackTrace(); } 返回null; } @凌驾 受保护的void onPostExecute(void避免){ 如果(mDataset.isEmpty()),请尝试{ //mImageButton.setVisibility(View.VISIBLE); Snackbar mSnackbar=Snackbar.make(查看“Snackbar.LENGTH”不定) .setAction(“新视图”OnClickListener(){ @凌驾 公共void onClick(视图){ //Snackbar.make(getView(),“签入已取消”,Snackbar.LENGTH\u LONG.show(); 新LoadRssFeedsItems().execute(“”); } }); mSnackbar.show(); }捕获(NullPointerException n){ n、 printStackTrace(); } 否则{ progressBar.setVisibility(View.INVISIBLE); mAdapter=新的CustomAdapter(mDataset); mRecyclerView.setAdapter(mAdapter); mAdapter.notifyDataSetChanged(); } } } }
这是我的xmlAndroid : mLayoutManager=新的GridLayoutManager(getActivity(),SPAN\u COUNT); mCurrentLayoutManagerType=LayoutManagerType.GRID\u LAYOUT\u MANAGER; 打破 案例线性布局管理器: mLayoutManager=新的LinearLayoutManager(getActivity()); mCurrentLayoutManagerType=LayoutManagerType.LINEAR\u LAYOUT\u MANAGER; 打破 违约: mLayoutManager=新的LinearLayoutManager(getActivity()); mCurrentLayoutManagerType=LayoutManagerType.LINEAR\u LAYOUT\u MANAGER; } mRecyclerView.setLayoutManager(mllayoutmanager); mRecyclerView.scrollToPosition(滚动位置); } @凌驾 SaveInstanceState上的公共无效(Bundle savedInstanceState){ //保存当前选定的布局管理器。 //保存当前选定的布局管理器。 //savedInstanceState.putSerializable(键布局管理器,mCurrentLayoutManagerType); //savedInstanceState.putSerializable(按键布局管理器,(可序列化)进度条); savedInstanceState.putParcelableArrayList(常量.MY_DATA_SET_PARCE_ABLE_ARRAY_KEY,mDataset); super.onSaveInstanceState(savedInstanceState); } /** *为RecyclerView的适配器生成字符串。这些数据通常会出现 *从本地内容提供商或远程服务器。 */ 私有void initDataset(){ if(mDataset.isEmpty()){ progressBar.setVisibility(View.VISIBLE); 新LoadRssFeedsItems().execute(“”); Log.i(标记“”+mDataset.size()); Log.i(标记“initDataset”); } } 公共类LoadRssFeedsItems扩展异步任务{ 私有字符串mTitle、mddescription、mLink、mPubDate; 私有字符串mcategrary,mImageLn; 私有字符串日期,mContent; 私人酒吧; 公共无效设置进度栏(进度栏){ 这个.bar=bar; } @凌驾 受保护的void onPreExecute(){ super.onPreExecute(); if(progressBar!=null){ progressBar.setVisibility(View.VISIBLE); } } @凌驾 受保护的void onProgressUpdate(void…值){ progressBar.setProgress(1); super.onProgressUpdate(值); } @凌驾 受保护的Void doInBackground(字符串…参数){ 文档rssDocument=null; 试一试{ rssDocument=Jsoup.connect(url).timeout(6000).ignoreContentType(true).parser(parser.xmlParser()).get(); 元素mItems=rssDocument.select(“项”); RssFeed-rssItem; 用于(图元:斜接){ mTitle=element.select(“title”).first().text(); mddescription=element.select(“description”).first().text(); mLink=element.select(“链接”).first().text(); mPubDate=element.select(“pubDate”).first().text(); mCategory=element.select(“category”).first().text(); mImageLn=element.select(“媒体内容”).attr(“url”).toString(); 日期=新的SimpleDataFormat(“dd MMM yyyy”)。格式(新日期()); mContent=element.select(“content | encoded”).first().text(); mContent=Jsoup.parse(mContent.text(); indexofp=mddescription.indexOf(常数P); indexOfPdash=mddescription.indexOf(常数P_-DASH); mddescription=mddescription.substring(indexofp+3,indexOfPdash); Log.i(标记,“项目标题:”+(mContent==null?“不适用”:mContent)); Log.i(标记,“项目标题:”+(mTitle==null?“不适用”:mTitle)); Log.i(标记,“项目描述:”+(mDescription==null?“不适用”:mDescription)); Log.i(标记,“项目链接:”+(mLink==null?“不适用”:mLink)); Log.i(标记,“项数据:”+(mImageLn==null?“N/A”:mImageLn)); Log.i(标记,“项目数据:”+(mPubDate==null?“不适用”:mPubDate)); Log.i(标记“系统日期:”+(日期==null?“不适用”:日期)); rssFeed=新的rssFeed(mTitle、mLink、mPubDate、mCategory、mLink、mddescription、mImageLn、context、mContent); mDataset.add(rssFeed); } }捕获(IOE异常){ e、 printStackTrace(); } 返回null; } @凌驾 受保护的void onPostExecute(void避免){ 如果(mDataset.isEmpty()),请尝试{ //mImageButton.setVisibility(View.VISIBLE); Snackbar mSnackbar=Snackbar.make(查看“Snackbar.LENGTH”不定) .setAction(“新视图”OnClickListener(){ @凌驾 公共void onClick(视图){ //Snackbar.make(getView(),“签入已取消”,Snackbar.LENGTH\u LONG.show(); 新LoadRssFeedsItems().execute(“”); } }); mSnackbar.show(); }捕获(NullPointerException n){ n、 printStackTrace(); } 否则{ progressBar.setVisibility(View.INVISIBLE); mAdapter=新的CustomAdapter(mDataset); mRecyclerView.setAdapter(mAdapter); mAdapter.notifyDataSetChanged(); } } } },android,android-fragments,android-asynctask,android-recyclerview,android-progressbar,Android,Android Fragments,Android Asynctask,Android Recyclerview,Android Progressbar,这是我的xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_pa
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/myRecylerView" />
<ProgressBar
style="?android:attr/progressBarStyle"
android:layout_marginTop="40dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/progressBar" />
<FrameLayout
android:id="@+id/mFramLaout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageButton
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:srcCompat="@drawable/ic_cloud_off_black_24dp"
android:id="@+id/mImageButton"
android:elevation="0dp"
android:visibility="gone"
android:background="#f1f1f1" />
</FrameLayout>
</LinearLayout>
您可以使用
Bundle
对象来实现此目的。在ondestory()
函数中添加该行
@Override
public void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putInt("PROGRESS", progress);
}
当片段将被重新创建时,您可以使用
@Override
public void onSaveInstanceState(Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putInt("PROGRESS", progress);
}
if(savedInstanceState!=null)
{
progress = savedInstanceState.getInt("PROGRESS");
}