我使用这个例子来使用a ViewPager和a PagerAdapter.但是我如何PagerAdapter从适配器中提供数据,就像CursorAdapter我使用CursorLoader?加载数据一样?
该.setAdapter()上ViewPager只需要一个PagerAdapter.然后我猜我需要绑定CursorAdapter内部PagerAdapter,但我找不到这样做的方法.
嘿家伙我有一个fragmentPagerAdapter,里面有3个片段.如何禁用3个片段之间的滑动,以便用户只使用tabview在片段之间进行?
干杯!
private class ViewPagerAdapter extends FragmentPagerAdapter
{
ArrayList<Fragment> fragments = new ArrayList<>();
ArrayList<String> tabTitles = new ArrayList<>();
public ViewPagerAdapter(android.support.v4.app.FragmentManager fragmentManager)
{
super(fragmentManager);
}
@Override
public Fragment getItem(int position)
{
return fragments.get(position);
}
@Override
public int getCount()
{
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position)
{
return tabTitles.get(position);
}
public void addFragments(Fragment fragment, String titles)
{
this.fragments.add(fragment);
this.tabTitles.add(titles);
}
}
Run Code Online (Sandbox Code Playgroud) android android-layout android-fragments fragmentpageradapter android-pageradapter
我正在尝试创建一个新的画廊风格应用程序,因为Gallery已经折旧.
我遇到的主要问题是,当我尝试运行以下代码时,我无法动摇错误"dimen无法解决或不是字段".我已经阅读了一些网站和一些帖子,说它与导入"import com.example.test.R;"有关.然而即使有这样的错误仍然存在,如果有人可以帮助它将是惊人的.
Gall.java:
package com.example.test;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
public class Gall extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gall);
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
ImgAdapt adapter = new ImgAdapt(this);
viewPager.setAdapter(adapter);
}
}
Run Code Online (Sandbox Code Playgroud)
activity_gall.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
ImgAdapt.java:
package com.example.test;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class ImgAdapt extends PagerAdapter {
Context context;
private …Run Code Online (Sandbox Code Playgroud) 编辑:我发现Activity正在保存实例,但Fragments保存的数据并没有使它保存到Activity savedInstanceState.我将当前时间保存在outState中,但它没有一路向上,因为活动在其SavedInstanceState中没有任何内容,并且如果我将其打印到logcat,则返回'null'. ..
我正在构建一个内置了countup和countdown计时器的应用程序.计时器的基本托管活动是FragmentActivity,它托管一个FragementPagerAdapter,它在代码中膨胀两个片段(我没有给XML中的片段提供id因为它们没有被定义为.xml中的片段.一切都很有效,直到方向改变,然后活动看起来像是失去了与旧片段的联系,只是选择创建新的片段.这意味着任何当前倒计时都会丢失,并且在配置更改时也会丢失所选择的任何时间.我需要保持计数(如果它开始)和当前显示的任何数字....
我知道适配器应该自己处理这些事情,我在OnCreate和OnCreateView中都设置了SetRetainInstance(true).
我把碎片放入Fragment代码,让我知道每当saveInstanceState为非null时,至少我知道发生了什么,但似乎实例总是为NULL,并且它从头开始创建...总是.
其他一些解决方案让我重写了instantiateItem,但似乎它仅用于重置回调,其他人更改Manifest中的设置(不赞成)....其他解决方案对我来说就像我有事情设置正确..但很明显,我在路上搞砸了一些东西.我只是为FragmentActivity,FragementPagerAdapter和一些片段代码提供代码,因为我不想使用可能不是问题的代码来垃圾邮件.
FragmentActivity
public class Timer_Main extends FragmentActivity {
ViewPager pager;
Timer_Pager mAdapter;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.timer_pager);
mAdapter = new Timer_Pager(this, getSupportFragmentManager());
pager = (ViewPager) findViewById(R.id.timer_pager_display);
pager.setAdapter(mAdapter);
}
public static String getTitle(Context ctxt, int position) {
// TODO Auto-generated method stub
return null;
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("pageItem", pager.getCurrentItem());
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
}
Run Code Online (Sandbox Code Playgroud)
FragementPagerAdapter
public class Timer_Pager extends FragmentPagerAdapter{
Context ctxt = …Run Code Online (Sandbox Code Playgroud) android android-fragments android-fragmentactivity android-pageradapter
我只是想膨胀一个xml文件并在viewpager页面中显示它.
LLL
logcat的:
致命异常:在Android.wits.CompoundButton的android.graphics.drawable.DrawableContainer.jumpToCurrentState(DrawableContainer.java:179)上的android.graphics.drawable.BitmapDrawable.setAlpha(BitmapDrawable.java:406)中的主要java.lang.StackOverflowError. android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的jumpDrawablesToCurrentState(CompoundButton.java:319) :5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)at android位于android.view的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158).位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup) .java:5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)在Android.view上的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.View.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158).位于android.view.View.View.jumpDrawablesTo的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的CurrentState(ViewGroup.java:5158),位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java) :5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)at android位于android.view.ViewGroup的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158). android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.View.jumpDrawablesToCurrentState(ViewGroup.ja)上的jumpDrawablesToCurrentState(ViewGroup.java:5158)va:5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)上的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158) android.view.View.View.View上的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)安卓android.view.View上的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.View.jumpDrawablesToCurrentState(ViewGroup.java:5158)的.jumpDrawablesToCurrentState(ViewGroup.java:5158)位于android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup. java:5158)在android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)的android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158)android.view.ViewGroup.jumpDrawablesToCurrentState(ViewGroup.java:5158) android.view.ViewGr
pageradapter类:
public class pageradapter extends PagerAdapter {
Context mContext;
LayoutInflater mLayoutInflater;
List<String> l = MainActivity.list;
ImageLoader mImageLoader;
public pageradapter(Context context) {
mContext = context;
mLayoutInflater = LayoutInflater.from(mContext.getApplicationContext());
}
@Override
public int getCount() {
return 4;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
// View itemView = mLayoutInflater.inflate(R.layout.img, container, false);
// ImageLoader mImageLoader = ImageLoader.getInstance();
View view = mLayoutInflater.inflate(R.layout.createnew, container);
// ImageView imageView = (ImageView) …Run Code Online (Sandbox Code Playgroud) stack-overflow android android-layout android-viewpager android-pageradapter
我想在我的ViewPager的每个页面中放置图像(就像一本书).这些图片来自网址列表:
我的适配器看起来像这样:
private class MyPagerAdapter extends PagerAdapter{
@Override
public int getCount() {
return NUM_AWESOME_VIEWS;
}
/**
* Create the page for the given position. The adapter is responsible
* for adding the view to the container given here, although it only
* must ensure this is done by the time it returns from
* {@link #finishUpdate()}.
*
* @param container The containing View in which the page will be shown.
* @param position The page position to be instantiated.
* …Run Code Online (Sandbox Code Playgroud) android image android-asynctask android-viewpager android-pageradapter
我用一ViewPager用FragmentStatePageAdapter我的屏幕上我有有许多图像,并享有5页.目前我mViewPager.setOffscreenPageLimit(1);只有当前,前一个和下一个将在内存中,其他2将被销毁.但是对于那些被破坏的片段,我想利用saveState()和restoreState()适配器来维持它的状态,所以当我回到那个屏幕时,无论如何都会去onCreateView()那个片段维持状态.
由于mViewPager.setOffscreenPageLimit(4);存在内存问题,因此不是一个好选择.
我搜索了很多,但我没有得到任何使用这2个函数维持和恢复状态的样本.
有人可以帮助我继续.
android android-adapter android-fragments android-viewpager android-pageradapter
我有一个ViewPager设置,它从服务器传递的数据中为其页面(视图)绘制数据.有时,服务器将发送将重新排序视图的新数据(有时会添加新视图),我需要在用户当前查看特定片段时在我的Android设备上无缝地进行此操作.
我将它设置为在从服务器下拉新数据时调用notifyDataSetChanged(),但这似乎将幻灯片的缓存版本保留在当前查看的幻灯片的左侧和右侧,这可能会随着重新排序而改变.我在这里看过这个主题:ViewPager PagerAdapter没有更新View并实现了第一个工作正常的解决方案,除了它重新加载正在查看的当前幻灯片,这对我的目的不起作用.我在第二个答案中实现了在同一页面上提出的setTag()方法,并且可以用于更新幻灯片上的信息,但是它不会帮助我重新排序它们.
有什么方法可以重新排序幕后的所有幻灯片,而不会在当前查看的幻灯片中造成任何打击?
TIA
编辑:添加代码并要求进一步澄清
这是我的Adapter类.
private class ScreenSlidePagerAdapter extends FragmentPagerAdapter {
ContestEntriesModel entries;
public ScreenSlidePagerAdapter(FragmentManager fm, ContestEntriesModel Entries) {
super(fm);
this.entries = Entries;
}
@Override
public long getItemId(int position) {
return entries.entries[position].ContestEntryId;
}
@Override
public int getItemPosition(Object object) {
android.support.v4.app.Fragment f = (android.support.v4.app.Fragment)object;
for(int i = 0; i < getCount(); i++){
android.support.v4.app.Fragment fragment = getItem(i);
if(f.equals(fragment)){
return i;
}
}
return POSITION_NONE;
}
@Override
public android.support.v4.app.Fragment getItem(int position) {
long entryId = getItemId(position);
//Log.d("EntryIds",Integer.toString(entryId));
if(mItems.get(entryId) != …Run Code Online (Sandbox Code Playgroud) android android-viewpager fragmentpageradapter android-pageradapter
我使用以下示例设置了一个simpleonpagechangelistener:
Android SimpleOnPageChangeListener - 确定滑动方向
但是,当我执行代码然后滑动viewpager时,我希望调用以下行:
public void onPageSelected(int position) {
Run Code Online (Sandbox Code Playgroud)
但是它似乎永远不会这样做 - 这导致了一个非功能性的viewPager.
有什么建议?
public class Home extends YouTubeBaseActivity implements VideoClickListener {
...
private int mCurrentTabPosition = NO_CURRENT_POSITION;
private static final int NO_CURRENT_POSITION = -1;
private ViewPager mPager;
...
int imageArray[];
String[] stringArray;
private OnPageChangeListener mPageChangeListener;
ImagePagerAdapter adapter = new ImagePagerAdapter();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home);
final ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
viewPager.setAdapter(adapter);
...
setOnPageChangeListener(mPageChangeListener);
mPageChangeListener = new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) { …Run Code Online (Sandbox Code Playgroud) java android android-viewpager onclicklistener android-pageradapter
我在Android应用中遇到了一个非常难以诊断的问题.getUserVisibleHint()返回false当前选定的片段,ViewPager它应该返回true(因为它是可见的并且被选中).
我已经将我看到这种行为的实例描述如下:
ViewPagerFragmentStatePagerAdapterPagerAdapter
android android-viewpager android-support-library android-pageradapter