Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ViewPager中的片段未刷新内容或其视图_Android_Android Fragments_Android Listview - Fatal编程技术网

Android ViewPager中的片段未刷新内容或其视图

Android ViewPager中的片段未刷新内容或其视图,android,android-fragments,android-listview,Android,Android Fragments,Android Listview,MainActivity.java public class MainActivity extends ActionBarActivity { Toolbar toolbar; ViewPager pager; ViewPagerAdapter adapter; SlidingTabLayout tabs; private ArrayList<String> mLanguagesArray = null; int Numboftabs

MainActivity.java

public class MainActivity extends ActionBarActivity {

    Toolbar toolbar;
    ViewPager pager;
    ViewPagerAdapter adapter;
    SlidingTabLayout tabs;
    private ArrayList<String> mLanguagesArray = null;
    int Numboftabs;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    if (savedInstanceState == null) {
        Bundle extras = getIntent().getExtras();
        if (extras != null) {
            mLanguagesArray = new ArrayList<String>();
            mLanguagesArray.addAll(extras.getStringArrayList("languages"));
            Numboftabs = mLanguagesArray.size();
        } 
    }

        toolbar = (Toolbar) findViewById(R.id.tool_bar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setIcon(R.drawable.ic_launcher);

        adapter = new ViewPagerAdapter(getSupportFragmentManager(),
                mLanguagesArray, Numboftabs, MainActivity.this);

        pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(adapter);

        // Assiging the Sliding Tab Layout View
        tabs = (SlidingTabLayout) findViewById(R.id.tabs);

        tabs.setViewPager(pager);
        tabs.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrollStateChanged(int arg0) {
            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
            }

            @Override
            public void onPageSelected(int arg0) {
                refreshListInFragment(arg0);
            }
        });
    }
    protected void refreshListInFragment(int position) {
        String currentLanguage = mLanguagesArray.get(position);
        FragmentManager fm = getSupportFragmentManager();
        ListviewFragment fragment = (ListviewFragment) fm
                .findFragmentById(R.id.pager);
        fragment.loadListview(currentLanguage);
    }
}
公共类MainActivity扩展了ActionBarActivity{
工具栏;
查看寻呼机;
ViewPagerAdapter适配器;
滑动布局选项卡;
private ArrayList mLanguagesArray=null;
int-Numboftabs;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
如果(savedInstanceState==null){
Bundle extras=getIntent().getExtras();
如果(附加值!=null){
mLanguagesArray=新数组列表();
mLanguagesArray.addAll(额外的getStringArrayList(“语言”);
Numboftabs=mLanguagesArray.size();
} 
}
工具栏=(工具栏)findViewById(R.id.tool\u栏);
设置支持操作栏(工具栏);
getSupportActionBar().setIcon(R.drawable.ic_启动器);
适配器=新的ViewPagerAdapter(getSupportFragmentManager(),
mLanguagesArray,NumberOfTabs,main活动。此);
pager=(ViewPager)findViewById(R.id.pager);
寻呼机设置适配器(适配器);
//辅助滑动选项卡布局视图
tabs=(slidengtablayout)findviewbyd(R.id.tabs);
tabs.setViewPager(寻呼机);
tabs.setOnPageChangeListener(新建ViewPager.OnPageChangeListener()){
@凌驾
公共无效onPageScrollStateChanged(int arg0){
}
@凌驾
已滚动页面上的公共void(int arg0、float arg1、int arg2){
}
@凌驾
已选择页面上的公共无效(int arg0){
refreshListInFragment(arg0);
}
});
}
受保护的无效刷新列表项(内部位置){
字符串currentLanguage=mLanguagesArray.get(位置);
FragmentManager fm=getSupportFragmentManager();
ListviewFragment片段=(ListviewFragment)fm
.findFragmentById(R.id.pager);
loadListview(currentLanguage);
}
}
ViewPagerAdapter.java

import java.util.ArrayList;
import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;

public class ViewPagerAdapter extends FragmentStatePagerAdapter {
    ArrayList<String> Titles;
    int NumbOfTabs;
    Context mContext;

    public ViewPagerAdapter(FragmentManager fm,
            ArrayList<String> mLanguagesArray, int mNumbOfTabsumb,
            Context context) {
        super(fm);
        Titles = new ArrayList<String>();
        this.Titles = mLanguagesArray;
        this.NumbOfTabs = mNumbOfTabsumb;
        this.mContext = context;

    }
    @Override
    public Fragment getItem(int position) {
        ListviewFragment listfragment = new ListviewFragment(mContext);
        return listfragment;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return Titles.get(position);
    }

    @Override
    public int getCount() {
        return NumbOfTabs;
    }
}
@Override
public Fragment getItem(int position) {
    Bundle args = new Bundle();
    args.putString("language", Titles.get(position));
    ListviewFragment f = new ListviewFragment(mContext);
    f.setArguments(args);
    return f;
} 
import java.util.ArrayList;
导入android.content.Context;
导入android.support.v4.app.Fragment;
导入android.support.v4.app.FragmentManager;
导入android.support.v4.app.FragmentStatePagerAdapter;
公共类ViewPagerAdapter扩展了FragmentStatePagerAdapter{
数组列表标题;
int-NumbOfTabs;
语境;
公共视图页面RADAPTER(碎片管理器fm,
阵列列表mLanguagesArray,位于塔本巴的内蒙,
上下文(上下文){
超级(fm);
Titles=新的ArrayList();
this.Titles=mLanguagesArray;
this.NumbOfTabs=mNumbOfTabsumb;
this.mContext=上下文;
}
@凌驾
公共片段getItem(int位置){
ListviewFragment listfragment=新ListviewFragment(mContext);
返回列表片段;
}
@凌驾
公共字符序列getPageTitle(int位置){
返回标题。获取(位置);
}
@凌驾
public int getCount(){
回程制动;
}
}
ListviewFragment.java

import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ListView;
import android.widget.ProgressBar;

public class ListviewFragment extends Fragment {
    ProgressBar progressbar;
    ListView list;
    ArrayList<RStore> mRstoreList = null;
    RadioListAdapter adapter;
    Context mContext;
    Button tryagain;
    String mCurrentLanguage = null;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.listviewfragment, container, false);
        progressbar = (ProgressBar) v.findViewById(R.id.progressbar);
        list = (ListView) v.findViewById(R.id.listview);
        if (ListviewFragment.this.isMenuVisible()) {
            if (mRstoreList == null) {
                loadListview("English");
            }
        }
        return v;
    }

    public void loadListview(final String currentlanguage) {
        this.mCurrentLanguage = currentlanguage;
        mRstoreList = new ArrayList<RStore>();
        new AsyncTask<Void, Void, String>() {
            private String jsonStr;
            @Override
            protected void onPreExecute() {
                list.setVisibility(View.GONE);
                progressbar.setVisibility(View.VISIBLE);
                tryagain.setVisibility(View.GONE);
                super.onPreExecute();
            }
            @Override
            protected String doInBackground(Void... arg0) {
                try {
                    String URL = ServiceUrls.MUSIC_PHP;
                    CustomHttpClient sh = new CustomHttpClient();
                    JSONObject jsonobjpost = new JSONObject();
                    jsonobjpost.put("languages", currentlanguage);
                    jsonStr = sh.makeServiceCall(URL, CustomHttpClient.POST,
                            jsonobjpost.toString());
                    System.out.println("MUSIC_PHP_Response " + jsonStr);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return jsonStr;
            }

            @Override
            protected void onPostExecute(String result) {
                if (result == null || result.trim().equalsIgnoreCase("null")
                        || result.trim().equalsIgnoreCase("")) {
                    progressbar.setVisibility(View.GONE);
                    super.onPostExecute(result);
                    return;
                }
                try {
                    String DUMMYJASON = result.toString();
                    JSONObject jsonObject = new JSONObject(DUMMYJASON);
                    JSONArray jsonArray = jsonObject.getJSONArray("Language");
                    for (int i = 0; i < jsonArray.length(); i++) {
                        JSONObject obj = jsonArray.getJSONObject(i);
                        String id = obj.getString("id");
                        String language = obj.getString("language");
                        String tittle = obj.getString("Tittle");
                        String link = obj.getString("link");
                        RStore storecon = new RStore();
                        storecon.setId(id);
                        storecon.setLanguage(language);
                        storecon.setTitle(tittle);
                        storecon.setLink(link);
                        mRstoreList.add(storecon);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }

                adapter = new RadioListAdapter(mContext, mRstoreList);
                list.setAdapter(adapter);
                list.setVisibility(View.VISIBLE);
                progressbar.setVisibility(View.GONE);
                super.onPostExecute(result);
            }
        }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);
    }
    public ListviewFragment(Context context) {
        this.mContext = context;
    }
}
private void getarugs() {
    Bundle args = getArguments();
    mCurrentLanguage = args.getString("language");
    loadListview(mCurrentLanguage);
}
导入android.support.v4.app.Fragment;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.Button;
导入android.widget.ListView;
导入android.widget.ProgressBar;
公共类ListviewFragment扩展了片段{
ProgressBar ProgressBar;
列表视图列表;
ArrayList mRstoreList=null;
放射适配器;
语境;
按钮tryagain;
字符串mCurrentLanguage=null;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
视图v=充气机。充气(R.layout.listviewfragment,容器,false);
progressbar=(progressbar)v.findViewById(R.id.progressbar);
列表=(ListView)v.findViewById(R.id.ListView);
if(ListviewFragment.this.isMenuVisible()){
if(mRstoreList==null){
loadListview(“英文”);
}
}
返回v;
}
public void loadListview(最终字符串currentlanguage){
this.mCurrentLanguage=currentlanguage;
mRstoreList=newarraylist();
新建异步任务(){
私有字符串jsonStr;
@凌驾
受保护的void onPreExecute(){
list.setVisibility(View.GONE);
progressbar.setVisibility(View.VISIBLE);
tryagain.setVisibility(View.GONE);
super.onPreExecute();
}
@凌驾
受保护的字符串doInBackground(无效…arg0){
试一试{
字符串URL=serviceURL.MUSIC\u PHP;
CustomHttpClient sh=新CustomHttpClient();
JSONObject jsonobjpost=新的JSONObject();
jsonobjpost.put(“语言”,currentlanguage);
jsonStr=sh.makeServiceCall(URL,CustomHttpClient.POST,
jsonobjpost.toString());
System.out.println(“MUSIC\u PHP\u Response”+jsonStr);
}捕获(例外e){
e、 printStackTrace();
}
返回jsonStr;
}
@凌驾
受保护的void onPostExecute(字符串结果){
if(result==null | | result.trim().equalsIgnoreCase(“null”)
||result.trim().equalsIgnoreCase(“”){
progressbar.setVisibility(View.GONE);
super.onPostExecute(结果);
返回;
}
试一试{
字符串DUMMYJASON=result.toString();
JSONObject JSONObject=新的JSONObject(DUMMYJASON);
JSONArray JSONArray=jsonObject.getJSONArray(“语言”);
对于(int i=0;i