Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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中只显示一次滑动图像_Android_Android Intent_Android Fragments_Android Preferences_Page Fragments - Fatal编程技术网

如何在android中只显示一次滑动图像

如何在android中只显示一次滑动图像,android,android-intent,android-fragments,android-preferences,page-fragments,Android,Android Intent,Android Fragments,Android Preferences,Page Fragments,我在切换到图像的地方应用了查看寻呼机滑动,然后我保留了一个按钮,在那里它切换到另一个活动。下次打开时,它不应该显示滑动图像。它应该直接打开活动。如何操作?我使用了偏好,但我不知道在哪里实现 我的代码如下: MainActivity.java public class MainActivity extends FragmentActivity { static final int ITEMS = 2; //here i am displaying two times of ImageFragmen

我在切换到图像的地方应用了查看寻呼机滑动,然后我保留了一个按钮,在那里它切换到另一个活动。下次打开时,它不应该显示滑动图像。它应该直接打开活动。如何操作?我使用了偏好,但我不知道在哪里实现

我的代码如下:

MainActivity.java

public class MainActivity extends FragmentActivity {
static final int ITEMS = 2; //here i am displaying two times of ImageFragment
MyAdapter mAdapter;
ViewPager mPager;
String status, city;
boolean proceed = true;

public static final String City = "city";
public static final String Activity = "activity";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mAdapter = new MyAdapter(getSupportFragmentManager());
    mPager = (ViewPager) findViewById(R.id.pager);
    status = preference.readString(getBaseContext(), preference.LOGGED_IN,
    "");
   city = preference.readString(this, preference.CITY, "");
   if (city.equals("") || (city == null)) {
proceed = false;
    }
    if ((status == "") || (status == null)) {
status = "true";
preference.writeString(getBaseContext(), preference.LOGGED_IN,
        status);
    } else if ((status.equals("true") && (proceed))) {
Intent i = new Intent(MainActivity.this, MainActivity1.class);
i.putExtra("activity", "city");
startActivity(i);
finish();
    }


    mPager.setAdapter(mAdapter);

    Button button = (Button) findViewById(R.id.first);
    button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            mPager.setCurrentItem(0);
        }
    });
    button = (Button) findViewById(R.id.last);
    button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            mPager.setCurrentItem(ITEMS);
        }
    });
   }

public static class MyAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager fragmentManager) {
        super(fragmentManager);
    }

    @Override
    public int getCount() {
        return ITEMS;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0: // Fragment # 0 - This will show image
            return ImageFragment.init(position);
        case 1: // Fragment # 1 - This will show image
            return ImageFragment.init(position);
        default:// Fragment # 2-9 - Will show list
            return ImageFragment.init(position);
        }
    }
} 
      public class ImageFragment extends Fragment {
        int fragVal;
        Button imagev;
        static ImageFragment init(int val) {
        ImageFragment truitonFrag = new ImageFragment();
        // Supply val input as an argument.
        Bundle args = new Bundle();
        args.putInt("val", val);
        truitonFrag.setArguments(args);
        return truitonFrag;
    }

       @Override
       public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        fragVal = getArguments() != null ? getArguments().getInt("val") : 1;
        }

       @Override
       public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View layoutView = inflater.inflate(R.layout.fragment_image, container,
                false);
        View tv = layoutView.findViewById(R.id.text);
        imagev=(Button)layoutView.findViewById(R.id.imageView2);
        imagev.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // here i am switching to another activity. when i open second time, this  
         // MainActivity1 to get displayed
        Intent myIntent = new Intent(getActivity(), MainActivity1.class); 
       getActivity().startActivity(myIntent); 
    }
    });
        ((TextView) tv).setText("Truiton Fragment #" + fragVal);
        return layoutView;
    }
}
ImageFragment.java

public class MainActivity extends FragmentActivity {
static final int ITEMS = 2; //here i am displaying two times of ImageFragment
MyAdapter mAdapter;
ViewPager mPager;
String status, city;
boolean proceed = true;

public static final String City = "city";
public static final String Activity = "activity";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mAdapter = new MyAdapter(getSupportFragmentManager());
    mPager = (ViewPager) findViewById(R.id.pager);
    status = preference.readString(getBaseContext(), preference.LOGGED_IN,
    "");
   city = preference.readString(this, preference.CITY, "");
   if (city.equals("") || (city == null)) {
proceed = false;
    }
    if ((status == "") || (status == null)) {
status = "true";
preference.writeString(getBaseContext(), preference.LOGGED_IN,
        status);
    } else if ((status.equals("true") && (proceed))) {
Intent i = new Intent(MainActivity.this, MainActivity1.class);
i.putExtra("activity", "city");
startActivity(i);
finish();
    }


    mPager.setAdapter(mAdapter);

    Button button = (Button) findViewById(R.id.first);
    button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            mPager.setCurrentItem(0);
        }
    });
    button = (Button) findViewById(R.id.last);
    button.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            mPager.setCurrentItem(ITEMS);
        }
    });
   }

public static class MyAdapter extends FragmentPagerAdapter {
    public MyAdapter(FragmentManager fragmentManager) {
        super(fragmentManager);
    }

    @Override
    public int getCount() {
        return ITEMS;
    }

    @Override
    public Fragment getItem(int position) {
        switch (position) {
        case 0: // Fragment # 0 - This will show image
            return ImageFragment.init(position);
        case 1: // Fragment # 1 - This will show image
            return ImageFragment.init(position);
        default:// Fragment # 2-9 - Will show list
            return ImageFragment.init(position);
        }
    }
} 
      public class ImageFragment extends Fragment {
        int fragVal;
        Button imagev;
        static ImageFragment init(int val) {
        ImageFragment truitonFrag = new ImageFragment();
        // Supply val input as an argument.
        Bundle args = new Bundle();
        args.putInt("val", val);
        truitonFrag.setArguments(args);
        return truitonFrag;
    }

       @Override
       public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        fragVal = getArguments() != null ? getArguments().getInt("val") : 1;
        }

       @Override
       public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View layoutView = inflater.inflate(R.layout.fragment_image, container,
                false);
        View tv = layoutView.findViewById(R.id.text);
        imagev=(Button)layoutView.findViewById(R.id.imageView2);
        imagev.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // here i am switching to another activity. when i open second time, this  
         // MainActivity1 to get displayed
        Intent myIntent = new Intent(getActivity(), MainActivity1.class); 
       getActivity().startActivity(myIntent); 
    }
    });
        ((TextView) tv).setText("Truiton Fragment #" + fragVal);
        return layoutView;
    }
}
MainActivity1.java

    public class MainActivity1 extends Activity{

    public static final String CITY = "city";
    public static final String ACTIVITY = "activity";
    String city,activity;
     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main1);

            city = preference.readString(this, preference.CITY, "");
            Intent i = getIntent();
            activity = i.getStringExtra(ACTIVITY);
     }
}
但如果我第二次打开,它不会显示MainActivity1.java。一旦获得,它就会显示MainActivity。如何解决这个问题?请帮帮我。我的偏好代码在这里


提前谢谢。

事实上,我不知道你那些花哨的字符串比较是用来。。。只需按照以下代码进行操作:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
    if(sp.getBoolean("first_start", true)){
        //Setup everything for the first start, e.g. your ViewPager, Adapter etc.

        //Set first_start = false
        sp.edit().putBoolean("first_start", false).commit();
    }
    else{
        //It's not the first start so go to the other Activity
        Intent i = new Intent(MainActivity.this, MainActivity1.class);
        i.putExtra("activity", "city");
        startActivity(i);
        finish();
    }

直接在onCreate()方法中实现此代码。

在另一个类中将一个布尔变量声明为静态变量。如果已经执行,则将其设置为false,否则将其设置为true。