public class FragmentTabChanel extends Fragment{
private final String TAG = "FragmentTabChanel"; private String[] CONTENT; private ViewPager pager;
private TabPageIndicator indicator;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
new GetLiveShowTitlesTask().execute();
} @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.tv_channel, container, false);
pager = (ViewPager) view.findViewById(R.id.pager);
indicator = (TabPageIndicator) view
.findViewById(R.id.indicator);
indicator.setOnPageChangeListener(new OnPageChangeListener() { @Override
public void onPageScrollStateChanged(int arg0) { } @Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
} @Override
public void onPageSelected(int position) {
switch (position) {
case 0:
Log.v(TAG, "onPageSelected::" + position);
((SlidingFragmentActivity) getActivity())
.getSlidingMenu()
.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
break;
default:
Log.v(TAG, "onPageSelected::" + position);
((SlidingFragmentActivity) getActivity()).getSlidingMenu()
.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
break;
}
} });
return view;
}
class GoogleMusicAdapter extends FragmentPagerAdapter {
public GoogleMusicAdapter(FragmentManager fm) {
super(fm);
} @Override
public Fragment getItem(int position) {
return TestFragment.newInstance(CONTENT[position % CONTENT.length]);
} @Override
public CharSequence getPageTitle(int position) {
return CONTENT[position % CONTENT.length].toUpperCase();
} @Override
public int getCount() {
return CONTENT.length;
} }
/**
* 获取直播电视台名称
*
* @author Administrator
*/
private class GetLiveShowTitlesTask extends AsyncTask<Void, Void, Void>
{
private String returnJsonStr;
private List<LiveChannelTypeModel> mTypeModels;
@Override
protected void onPreExecute()
{
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params)
{
NetGet netGet = new NetGet(constant.LIVE_CATEGORY);
returnJsonStr = netGet.doGetNoPass();
Log.d(TAG,"电视频道返回的json:"+returnJsonStr);
mTypeModels = new ArrayList<LiveChannelTypeModel>();
try
{
if (null != returnJsonStr)
{
JSONArray jsonArray = new JSONArray(returnJsonStr);
if (null != jsonArray)
{
for (int i = 0; i < jsonArray.length(); i++)
{
LiveChannelTypeModel model = new LiveChannelTypeModel();
JSONObject jsonObj = jsonArray.getJSONObject(i);
model.setM_id(jsonObj.getString("m_id"));
String m_title_name = LiveUtil.decodeURL(jsonObj.getString("m_title"));
model.setM_title(m_title_name);
mTypeModels.add(model);
}
}
}
}
catch (JSONException e)
{
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result)
{
super.onPostExecute(result);
if (null != mTypeModels && !mTypeModels.isEmpty())
{
// Intent intent = new Intent();
// intent.putExtra("mTypeModels", (Serializable)mTypeModels);
// intent.setClass(LiveLookback_refresh_activity.this, LiveLookback_main.class);
// startActivity(intent);
for(int i = 0; i < mTypeModels.size(); i++){
CONTENT[i] = mTypeModels.get(i).getM_title();
}
Log.d(TAG,"频道tab名字"+CONTENT);
FragmentPagerAdapter adapter = new GoogleMusicAdapter(getActivity()
.getSupportFragmentManager());
pager.setAdapter(adapter);
// pager.setCurrentItem(0);
((SlidingFragmentActivity) getActivity()).getSlidingMenu()
.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
indicator.setViewPager(pager);
// LiveLookback_refresh_activity.this.finish();
}
else
{
// loading_ll.setVisibility(View.GONE);
// nodatas_ll.setVisibility(View.VISIBLE);
}
}
}
}
报错信息如下:
04-12 23:20:56.953: E/AndroidRuntime(31892): java.lang.IllegalStateException: ViewPager has not been bound.
04-12 23:20:56.953: E/AndroidRuntime(31892): at com.viewpagerindicator.TabPageIndicator.setCurrentItem(TabPageIndicator.java:243)
04-12 23:20:56.953: E/AndroidRuntime(31892): at com.viewpagerindicator.TabPageIndicator.onMeasure(TabPageIndicator.java:117)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.View.measure(View.java:12755)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.LinearLayout.measureVertical(LinearLayout.java:660)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.View.measure(View.java:12755)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.View.measure(View.java:12755)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1369)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:1017)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.LinearLayout.onMeasure(LinearLayout.java:555)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.View.measure(View.java:12755)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.View.measure(View.java:12755)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.LinearLayout.measureVertical(LinearLayout.java:812)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.LinearLayout.onMeasure(LinearLayout.java:553)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.View.measure(View.java:12755)
04-12 23:20:56.953: E/AndroidRuntime(31892): at com.slidingmenu.lib.CustomViewAbove.onMeasure(CustomViewAbove.java:456)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.View.measure(View.java:12755)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:594)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:376)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.View.measure(View.java:12755)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4698)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.widget.FrameLayout.onMeasure(FrameLayout.java:293)
04-12 23:20:56.953: E/AndroidRuntime(31892): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2099)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.View.measure(View.java:12755)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1064)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2445)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.os.Handler.dispatchMessage(Handler.java:99)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.os.Looper.loop(Looper.java:137)
04-12 23:20:56.953: E/AndroidRuntime(31892): at android.app.ActivityThread.main(ActivityThread.java:4510)
04-12 23:20:56.953: E/AndroidRuntime(31892): at java.lang.reflect.Method.invokeNative(Native Method)
04-12 23:20:56.953: E/AndroidRuntime(31892): at java.lang.reflect.Method.invoke(Method.java:511)
04-12 23:20:56.953: E/AndroidRuntime(31892): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:947)
04-12 23:20:56.953: E/AndroidRuntime(31892): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:714)
04-12 23:20:56.953: E/AndroidRuntime(31892): at dalvik.system.NativeStart.main(Native Method)json的数据已经拿到了,说我viewpage has not been bound。其实我就是想通过网络获得频道名称,有没有好的解决办法呢
解决方案 »
- ZoomControls图片放大缩小到一定程度的时候按钮不可再点,怎么实现??
- KeyEvent.ACTION_MULTIPLE代表什么意思
- Android编程中使用Lgame引擎,如何使用playtAssetsMusic(String file,boolean loop)方法播放音乐
- android sdk 的安装
- AlertDialog.Builder列表对话框 子项高度怎么设置
- 如何从外部获取当前运行的activity的名称
- 请问一下 关于资源路径的问题
- 4.2.2转2.2 styles.xml出错
- 新手提问:关于HTML5移动应用结合php写后台数据处理的问题
- 有了解Android NFC的不。高分悬赏
- 有关android编程中SQLite的使用问题——求解答
- 通知中的多个下载进度条更新乱序,求解决.....
因为这个错误是TabPageIndicator 报的,原因是你在初始化的时候没有设置TabPageIndicator 的ViewPager