Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.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
Java 查看寻呼机正在一次又一次地滑动同一图像_Java_Android_Android Fragments_Android Viewpager - Fatal编程技术网

Java 查看寻呼机正在一次又一次地滑动同一图像

Java 查看寻呼机正在一次又一次地滑动同一图像,java,android,android-fragments,android-viewpager,Java,Android,Android Fragments,Android Viewpager,我一直在开发应用程序(基于问答)。我已经包括查看寻呼机刷图像,但它只是刷相同的图像 调用类的类的代码(活动中包含查看寻呼机) ExerciseOneQuestion.java package com.example.joshiyogesh.puzzle; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; pub

我一直在开发应用程序(基于问答)。我已经包括查看寻呼机刷图像,但它只是刷相同的图像

调用类的类的代码(活动中包含查看寻呼机)

ExerciseOneQuestion.java

package com.example.joshiyogesh.puzzle;

import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class ExerciseOneQuestions extends AppCompatActivity {
    ViewPager viewPager;
    public int questionIndexReceive;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_exercise_one_questions);
        questionIndexReceive = getIntent().getIntExtra("question_index",1);
//        questionIndexReceive =Integer.parseInt(getIntent().getStringExtra("question_index"));
        viewPager = (ViewPager)findViewById(R.id.pager);
        PagerAdapter pagerAdapter = new PagerAdapter(getSupportFragmentManager());
        viewPager.setAdapter(pagerAdapter);
    }
}
寻呼机适配器类

package com.example.joshiyogesh.puzzle;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;

public class PagerAdapter extends FragmentPagerAdapter {
    public PagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {
        position = new ExerciseOneQuestions().questionIndexReceive;
        Fragments fragments = new Fragments();
        Bundle bundle = new Bundle();
        bundle.putInt("question_no",position);
        fragments.setArguments(bundle);
        return fragments;
    }

    @Override
    public int getCount() {
        return 2;
    }
}
碎片类

public class Fragments extends Fragment {
    ImageView imageView;
    @Override
    public View onCreateView(LayoutInflater inflater , ViewGroup container ,
                             Bundle savedInstanceState){

        int [] image_index = {R.drawable.eightypageanswer1,R.drawable.eightypageanswer8};
        Bundle bundle = getArguments();
        int message = bundle.getInt("question_no");
        View rootView = inflater.inflate(R.layout.fragments,container,false);
        imageView = (ImageView) rootView.findViewById(R.id.imageQuestions);
        imageView.setImageResource(image_index[message]);
        return rootView;
    }
}
出于测试目的,我只考虑了整数中的两个图像,但它总是扫描相同的图像,即第一个图像

而不是更改ExerciseOneQuestionList.java中的“问题索引” 这里

public void questionOne(View view) {

        Intent intent = new Intent(getApplicationContext(),ExerciseOneQuestions.class);
        intent.putExtra("question_index",0);
        startActivity(intent);
    }

无法理解为什么它总是显示相同的图像?

似乎问题是一致的

position=new ExerciseOneQuestions().QuestionIndexXReceive


似乎位置总是设置在同一个数字上。

我真的不知道你在用这个“新练习题().questionIndexReceive;”行做什么。但按照标准方式,您应该创建两个片段,然后将这些片段添加到适配器中。其余的工作将由适配器完成,下面的粗略代码可能会帮助您:

public class ViewPagerAdapter extends FragmentStatePagerAdapter {
    private final List<Fragment> mFragments = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    public void addFragment(Fragment fragment, String title) {
        mFragments.add(fragment);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragments.get(position);    // Which Fragment should be dislpayed by the viewpager for the given position

    }

    @Override
    public int getCount() {
        return mFragments.size();
    }
}
公共类ViewPagerAdapter扩展了FragmentStatePagerAdapter{
私有最终列表MFFragments=new ArrayList();
公共ViewPagerAdapter(碎片管理器fm){
超级(fm);
}
public void addFragment(片段片段,字符串标题){
添加(片段);
}
@凌驾
公共片段getItem(int位置){
返回mffragments.get(position);//viewpager应该为给定位置显示哪个片段
}
@凌驾
public int getCount(){
返回mffragments.size();
}
}

通过调用addFragment方法,然后调用setadapter,使类中的两个片段对象添加到适配器中

你只得到第一张图片吗?我能知道你每次收到的信息int值吗?@Nivedh是的,我总是收到第一张图像,即索引0remove position=new ExerciseOneQuestions().questionIndexReceive;这可能会解决您的问题。我正在尝试了解用户实际选择的职位(编号)。而且这不是只应用两个片段的情况。实际上我正在做的是,我正在更改片段中的图像。我无法理解,如果questionIndexReceive是由我手动更改的,那么为什么它不会根据您的情况更改位置,如果这条线中存在问题,如果有其他方法,那么让我们告诉您。这里实际做的是,图像在片段内部发生变化。我使用了上面这一行,因为当有很多图像时,如果用户想直接进入(假设)第10个图像,那么可以直接完成,也可以使用swipeVar
position
进行更改。如果要在位置x手动显示图像,应使用
pager.setCurrentItem(x)
转到该页的寻呼机。我不确定我是否完全理解您想要做什么,但这肯定是错误的方式。基于图像和答案的应用程序。活动中有数字,如果用户点击任何数字,它会直接显示图像,问题的图像存储在整数中,由片段访问,在片段中我们更改图像。当用户在特定阶段(问题图像)直接跳转时,他也可以在该位置滑动图像以查看下一个或上一个图像(如果有)
public class ViewPagerAdapter extends FragmentStatePagerAdapter {
    private final List<Fragment> mFragments = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    public void addFragment(Fragment fragment, String title) {
        mFragments.add(fragment);
    }

    @Override
    public Fragment getItem(int position) {
        return mFragments.get(position);    // Which Fragment should be dislpayed by the viewpager for the given position

    }

    @Override
    public int getCount() {
        return mFragments.size();
    }
}