我有两个 fragment 和一个 MainActivity 类。 一切正常,但我想用 onClick 按钮滑动 fragment 。比如我点击 fragment A上的按钮,它会滑动到 fragment B。我需要在哪里添加代码?在 MainActivity 中还是在 Fragments 中?
答:
package com.example.mytesttabandsweeper;
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.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class Fragment_A extends Fragment implements OnClickListener {
TextView wynik;
Button przycisk;
EditText procent,cena;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v = inflater.inflate(R.layout.fragment_a, container, false);
return v;
}
}
乙:
package com.example.mytesttabandsweeper;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
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.EditText;
import android.widget.ImageView;
import android.widget.TextView;
public class Fragment_B extends Fragment implements OnClickListener {
TextView slowo;
EditText podane_slowo;
private ImageView iv;
private Bitmap bitmap;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub\
View v = inflater.inflate(R.layout.fragment_b, container, false);
return v;
}
}
主要 Activity :
package com.example.mytesttabandsweeper;
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.app.FragmentStatePagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends FragmentActivity {
ViewPager viewPager=null;
Button test;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
viewPager = (ViewPager) findViewById(R.id.pager);
FragmentManager fragmentManager=getSupportFragmentManager();
viewPager.setAdapter(new MyAdapter(fragmentManager));
}
}
class MyAdapter extends FragmentStatePagerAdapter{
public MyAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public Fragment getItem(int i) {
Fragment fragment = null;
if(i==0)
{
fragment = new Fragment_A();
}
if(i==1)
{
fragment = new Fragment_B();
}
return fragment;
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 2;
}
@Override
public CharSequence getPageTitle(int position) {
// TODO Auto-generated method stub
if(position==0)
{
return "A";
}
if(position==1)
{
return "B";
}
return null;
}
}
一切正常,但我想使用 onClick 按钮滑动 fragment 。比如我点击 fragment A上的按钮,它会滑动到 fragment B。我需要在哪里添加代码?在 MainActivity 中还是在 Fragments 中?
最佳答案
在Button
点击你可以调用
viewPager.setCurrentItem(position);
或者如果你想要一个平滑的滚动你可以使用
viewPager.setCurrentItem(position,true);
关于java - 如何通过单击按钮滑动 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23959760/