2Hi伙计们我正在尝试使用横向分页器和Android支持包构建应用程序.我已经在另一个项目中编译了这个确切的代码,但第二个代码示例的最后一行不允许我编译.Eclipse说Cannot instantiate the type PagerAdapter
我的进口
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
Run Code Online (Sandbox Code Playgroud)
我的代码
List<Fragment> fragments = new Vector<Fragment>();
fragments.add(Fragment.instantiate(this, Tab1.class.getName()));
fragments.add(Fragment.instantiate(this, Tab2.class.getName()));
fragments.add(Fragment.instantiate(this, Tab3.class.getName()));
this.mPagerAdapter = new PagerAdapter(super.getSupportFragmentManager(), fragments);
Run Code Online (Sandbox Code Playgroud)
您认为我的导入或项目设置有问题 - 如果您需要更多信息,请告诉我.此代码适用于其他项目.
谢谢
好吧,我决定只使用pagertitlestrip.我假设我使用的支持库不包含pagertabstrip.我不知道如何解决这个问题因为我认为我已经正确更新了所有内容.编辑:这不再存在吗?当我将PagerTabStrip更改为PagerTitleStrip时,一切正常,但我无法与期望的标题进行交互,因为这就是我想使用PagerTabStrip的原因.
我已经回到基础,找到问题的根源.我开始了一个新项目进口ABS.我设置了一个非常简单的pagerAdapter和一个简单的片段.我使用了一本公共书中的例子,但我仍然得到同样的错误.找不到类别例外.找不到PagerTabStrip.Stack posted每次都会出现相同的错误.如果我删除PagerTabStrip然后一切正常.
XML
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<android.support.v4.view.PagerTabStrip
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="top" />
</android.support.v4.view.ViewPager>
Run Code Online (Sandbox Code Playgroud)
主要活动
package com.example.pagetabswipe;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import com.actionbarsherlock.app.SherlockFragmentActivity;
public class MainActivity extends SherlockFragmentActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager pager = (ViewPager)findViewById(R.id.pager);
pager.setAdapter(new SampleAdapter(getSupportFragmentManager(), this));
}
}
Run Code Online (Sandbox Code Playgroud)
适配器
package com.example.pagetabswipe;
import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class SampleAdapter extends FragmentPagerAdapter {
Context ctxt=null;
public SampleAdapter(FragmentManager fm, Context ctxt) {
super(fm);
this.ctxt=ctxt;
// TODO Auto-generated …
Run Code Online (Sandbox Code Playgroud) 在我的申请中,我必须在 中显示学生详细信息ViewPager
。我使用了一个片段(例如StudentPageFragment
),并编写了小部件初始化代码,onCreateView()
如下所示:
public static Fragment newInstance(Context context) {
StudentPageFragment f = new StudentPageFragment();
return f;
}
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.stud_list_page,
null);
// initialize all widgets here
displayStudentDetails();
return root;
}
protected void displayStudentDetails() {
ArrayList<Student>studList = User.getStudentsList();
if (studList != null) {
int loc = (pageIndex * 3);
for (int i = 0; i < 3; i++) {
if (loc < studList.size()) {
// …
Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager android-pageradapter
我面临着ViewPager
Class 的麻烦,我有三个页面,每个都有一个scrollView
,相对布局和ImageView里面.
我点击ImageView时需要设置彩色背景.我的问题是:当我点击一个ImageView
让它背景颜色时,背景颜色出现ImageView
在另一个PagerView页面的另一个...
对于实例:我有四个页面,每个页面都加载了一个ImageView
,当我点击第一页面中的第一个ImageView时,第二个ViewPager
页面中的ImageView 得到了背景颜色.
我需要让我的第一个ImageView
(在第一页)进行背景化.
这是代码......这是我的寻呼机适配器类
public class ViewPagerAdapter extends PagerAdapter {
private DataSetObserver mObserver;
ImageView image,image2;
Activity activity;
int imageArray[];
Point p;
public ViewPagerAdapter(Activity act, int[] imgArra) {
imageArray = imgArra;
activity = act;
}
@Override
public int getItemPosition(Object object) {
// TODO Auto-generated method stub
return super.getItemPosition(object);
}
public int getCount() {
return imageArray.length;
}
public Object instantiateItem(View collection, int position) {
int …
Run Code Online (Sandbox Code Playgroud) 活动 A 有片段。当它启动对活动 B 的意图时B.finish()
,然后当 时,AonCreate()
再次执行。
但这一次,即使A.onCreate()
有 newPacksPagerAdapter
和 new ViewPager
,片段也显示为旧数据。
我可以看到它onCreateView()
为每个片段执行,但由于static newInstance()
没有调用它,它仍然具有旧参数。getItem(position)
调用FragmentPagerAdapter 时会创建参数。
这是它的实施方式 -
public class PackActivity extends Activity {
...
PacksPagerAdapter mPacksPagerAdapter;
ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mPacksPagerAdapter = new MyPagerAdapter(getFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setAdapter(mPacksPagerAdapter);
mViewPager.setOffscreenPageLimit(PACK_PAGES - 1);
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setTitle(...);
} …
Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager android-activity android-pageradapter
我正在使用pageradapter和viewpager来显示imageview数组,textview数组.但是如何在按钮点击时删除寻呼机.下面的代码中的代码,但是我在xml onclick中添加了按钮应该删除页面.
http://www.androidbegin.com/tutorial/android-viewpager-gallery-images-and-texts-tutorial/
package com.androidbegin.viewpagertutorial;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class ViewPagerAdapter extends PagerAdapter {
// Declare Variables
Context context;
String[] rank;
String[] country;
String[] population;
int[] flag;
LayoutInflater inflater;
public ViewPagerAdapter(Context context, String[] rank, String[] country,
String[] population, int[] flag) {
this.context = context;
this.rank = rank;
this.country = country;
this.population = population;
this.flag = flag;
}
@Override
public int getCount() …
Run Code Online (Sandbox Code Playgroud) 我想ViewPager
在一周中的所有日期中显示,并预览当前项目的以下和上一项。我已经尝试了很多来自stackoverflow的解决方案,但是都没有用。我不会在中使用片段,ViewPager
所以我使用了PagerAdapter
。
看到这张图片:
我的出发点是:
activity_main.xml
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="Choose a day of the week:" />
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/weekOfTheDayPager"/>
Run Code Online (Sandbox Code Playgroud)
MainActivity.java
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setUpAdapter();
}
private void setUpAdapter() {
ViewPager _mViewPager = (ViewPager) findViewById(R.id.weekOfTheDayPager);
final String[] daysOfTheWeek = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"};
final Context myContext = getBaseContext();
_mViewPager.setAdapter(new PagerAdapter() {
@Override
public int getCount() {
return daysOfTheWeek.length;
}
@Override
public …
Run Code Online (Sandbox Code Playgroud)在我的应用中,用户可以向其他用户发送图标/礼物.我想显示一个DialogFragment弹出窗口,其中包括可用图标的分页.
例如,我总共要显示15个图标.我想在每页显示6个图标,这意味着我应该有3个"页面"来水平滑动.
我尝试使用FragmentPagerAdapter和RecyclerView与GridLayout作为图标.但它并没有真正像我想要的那样工作.
如何使用没有任何片段的PagerAdapter实现这一点?
条件:
我有一个 Activity,并且正在PagerAdapter extends FragmentPagerAdapter
使用一个 Fragment 类进行创建。TabLayout 包含 10 个选项卡。我已经TabLayout.addOnTabSelectedListener
更新onTabSelected()
了应用程序中的一些自定义变量SharedPreferences
,这取决于当前选项卡名称和选项卡索引。选项卡的名称不是静态的 - 也有从服务器加载的名称。
我的任务:
有了这个值,我应该retrofit2
Call
向我的服务器创建一个值,并使用 recyclerview 为我的Fragment
.
我的问题:
我正在为不同的选项卡加载相同的数据,这些选项卡应该包含不同的数据!我知道发生这种情况是因为在所有情况下我都有相同的SharedPreferences
变量值,所以我retrofit
Call
在相同的条件下进行。
setOffscreenPageLimit()
无法设置为0 - 根据文档,默认值为 1:
https: //developer.android.com/reference/kotlin/androidx/viewpager/widget/ViewPager#setoffscreenpagelimit;
setUserVisibleHint()
所以我发现这就像解决我的问题的一些变体,但它不能被覆盖,因为现在已被弃用。
解决方案:
我认为我应该以某种方式保存上一个和下一个选项卡名称,然后我可以Call
在不同的条件下进行不同的并行改造。当选择选项卡时,我可以获得当前、上一个和下一个选项卡名称。但是我应该如何、在哪里以及何时再进行两次改造呼叫呢?
UPD 08.02.2022:仍在思考这个问题。
代码:
一些Activity.java
public class SomeActivity extends BaseActivity {
private String TAG="SomeActivity";
private Context context;
private TabLayout tabs;
private ViewPager viewpager;
private ProgressBar PBLoading;
private PagerAdapter_SomePAdapter adapter; …
Run Code Online (Sandbox Code Playgroud) java android android-fragments android-viewpager android-pageradapter
我通过像这样的片段填充视图寻呼机
pagerAdapter = new PagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.container);
for (int i = 0; i < 10; i++) {
newfragment fragobj = new newfragment();
fragobj.setArguments(bundle);
pagerAdapter.addFragment(fragobj, "Category");
}
mViewPager.setAdapter(pagerAdapter);
mViewPager.setCurrentItem(page);
Run Code Online (Sandbox Code Playgroud)
我希望清除所有碎片并在清除后添加新碎片.如果我现在添加新的片段,它会使用旧片段进行广告.
我尝试了很多堆栈溢出的答案,但没有一个能为我工作.
android android-fragments android-viewpager android-pageradapter