Here is my code:
这是我的代码:
FirstView.java
FirstView.java
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
public class FirstView extends Fragment
{
private TextView firstText;
private Button btn;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_view1,container,false);
firstText = (TextView)view.findViewById(R.id.viewOneText);
btn = (Button)view.findViewById(R.id.viewOneBtn);
btn.setOnClickListener(new ButtonEvent());
return view;
}
private class ButtonEvent implements OnClickListener
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new SecondView();
}
}
}
SecondView.java
SecondView.java
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
public class SecondView extends Fragment
{
private TextView secondText;
private Button secondViewBtn;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View view = inflater.inflate(R.layout.fragment_view2,container,false);
secondText = (TextView)view.findViewById(R.id.secondViewText);
secondViewBtn = (Button)view.findViewById(R.id.secondViewBtn);
secondViewBtn.setOnClickListener(new ButtonEvent());
return view;
}
private class ButtonEvent implements OnClickListener
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
secondText.setText("Second View Text changed");
}
}
}
MainActivity.java
MainActivity.java
import android.os.Bundle;
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
public class MainActivity extends FragmentActivity {
private ViewPager viewPager;
private MyAdapter pageAdapter;
private static final int ITEMS = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager)findViewById(R.id.pager);
pageAdapter = new MyAdapter(getSupportFragmentManager());
viewPager.setAdapter(pageAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public static class MyAdapter extends FragmentPagerAdapter {
public MyAdapter(FragmentManager fragmentManager) {
super(fragmentManager);
}
@Override
public int getCount() {
return ITEMS;
}
@Override
public Fragment getItem(int position) {
if(position==0)
{
return new FirstView();
}
else
{
return new SecondView();
}
}
}
}
In this code, when I click on the Button
in FirstView, I need to move to the SecondView. I tried with Intents
but guess it is wrong. Currently this is having the Swipe function because of the ViewPager
, I need to this to move to the SecondView when the button is clicked, with the same swipe functionality.
在这段代码中,当我单击FirstView中的按钮时,我需要移动到SecondView。我试过了,但我猜错了。目前,由于ViewPager,它具有刷卡功能,我需要在单击按钮时将其移动到SecondView,具有相同的刷卡功能。
2 个解决方案
#1
29
Just add a new method that moves fragments to your activity:
只需添加一个新的方法,将片段移动到您的活动中:
public void setCurrentItem (int item, boolean smoothScroll) {
viewPager.setCurrentItem(item, smoothScroll);
}
and call it from a button listener:
从按钮监听器调用:
((MainActivity)getActivity()).setCurrentItem (1, true);
#2
3
you can define in your activity the below functions:
您可以在活动中定义以下功能:
public void next_fragment(View view) {
viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
}
public void previous_fragment(View view) {
viewPager.setCurrentItem(viewPager.getCurrentItem()-1);
}
then call them from your layout as:
然后从布局中调用它们:
android:onClick="next_fragment" for the "NEXT" button
and
和
android:onClick="previous_fragment" for the "PREVIOUS" button
#1
29
Just add a new method that moves fragments to your activity:
只需添加一个新的方法,将片段移动到您的活动中:
public void setCurrentItem (int item, boolean smoothScroll) {
viewPager.setCurrentItem(item, smoothScroll);
}
and call it from a button listener:
从按钮监听器调用:
((MainActivity)getActivity()).setCurrentItem (1, true);
#2
3
you can define in your activity the below functions:
您可以在活动中定义以下功能:
public void next_fragment(View view) {
viewPager.setCurrentItem(viewPager.getCurrentItem()+1);
}
public void previous_fragment(View view) {
viewPager.setCurrentItem(viewPager.getCurrentItem()-1);
}
then call them from your layout as:
然后从布局中调用它们:
android:onClick="next_fragment" for the "NEXT" button
and
和
android:onClick="previous_fragment" for the "PREVIOUS" button