简体   繁体   English

如何通过单击Android当前选项卡中的按钮来转到其他选项卡?

[英]How to go other Tabs by clicking on a Button from the current Tab in Android?

I trying to write a code in Android, to switch from one tab to another tab by click on a button. 我尝试在Android中编写代码,通过单击按钮从一个选项卡切换到另一个选项卡。

I know to by clicking on tab we can switch from one tab to another but can it be possible to switch from one tab to another tab by clicking on one button. 我知道通过单击选项卡我们可以从一个选项卡切换到另一个选项卡但是可以通过单击一个按钮从一个选项卡切换到另一个选项卡。

I tried the following tutorial. 我尝试了以下教程。

http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/ http://www.androidhive.info/2013/10/android-tab-layout-with-swipeable-views-1/

In this tutorial i have edited the MovieFragment.java file in following manner. 在本教程中,我以下列方式编辑了MovieFragment.java文件。

MovieFragment.java MovieFragment.java

package info.androidhive.tabsswipe;

import info.androidhive.tabsswipe.R;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager; 
import android.support.v4.view.ViewPager; 
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;

public class MoviesFragment extends Fragment {

ViewPager viewPager;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle    savedInstanceState) 
{

   View rootView = inflater.inflate(R.layout.fragment_movies, container, false);

   Button btn = (Button) rootView.findViewById(R.id.btn);

   btn.setOnClickListener(new View.OnClickListener() 
   {

       @Override
      public void onClick(View v) 
      {

          viewPager.setCurrentItem(0);

      }
  }); 


 return rootView;
}}

XML Code : XML代码:

<?xml version="1.0" encoding="utf-8"?>
  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:orientation="vertical" 
     android:background="#17df0d">

<android.support.v4.view.ViewPager
    android:id="@+id/myfivepanelpager"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />


<TextView android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="Design Movies Screen"
    android:textSize="20dp"
    android:layout_centerInParent="true"/>

<Button 
    android:id="@+id/btn"
    android:layout_width="100dp"
    android:layout_height="80dp"
    android:text="Click"
    />


</RelativeLayout>

I have created a button in the xml layout and trying switch to tab -1 but i am getting Null Pointer Exception. 我已经在xml布局中创建了一个按钮并尝试切换到选项卡-1但我得到了空指针异常。

Error Code: 错误代码:

05-20 09:07:10.995: E/AndroidRuntime(1117): FATAL EXCEPTION: main
05-20 09:07:10.995: E/AndroidRuntime(1117): java.lang.NullPointerException
05-20 09:07:10.995: E/AndroidRuntime(1117):     at info.androidhive.tabsswipe.MoviesFragment$1.onClick(MoviesFragment.java:33)
05-20 09:07:10.995: E/AndroidRuntime(1117):     at android.view.View.performClick(View.java:4240)
05-20 09:07:10.995: E/AndroidRuntime(1117):     at  android.view.View$PerformClick.run(View.java:17721)
05-20 09:07:10.995: E/AndroidRuntime(1117):     at android.os.Handler.handleCallback(Handler.java:730)
05-20 09:07:10.995: E/AndroidRuntime(1117):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-20 09:07:10.995: E/AndroidRuntime(1117):     at android.os.Looper.loop(Looper.java:137)
05-20 09:07:10.995: E/AndroidRuntime(1117):     at android.app.ActivityThread.main(ActivityThread.java:5103) 
05-20 09:07:10.995: E/AndroidRuntime(1117):     at java.lang.reflect.Method.invokeNative(Native Method)
05-20 09:07:10.995: E/AndroidRuntime(1117):     at java.lang.reflect.Method.invoke(Method.java:525) 
05-20 09:07:10.995: E/AndroidRuntime(1117):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
05-20 09:07:10.995: E/AndroidRuntime(1117):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
05-20 09:07:10.995: E/AndroidRuntime(1117):     at dalvik.system.NativeStart.main(Native Method)

Please suggest me some solution or some good technique to do it. 请建议我一些解决方案或一些好的技术来做到这一点。

You have to call parent view inside your fragment. 您必须在片段内调用父视图。

public class MoviesFragment extends Fragment {

     ViewPager viewPager;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        View rootView = inflater.inflate(R.layout.fragment_movies, container, false);

        Button btn = (Button) rootView.findViewById(R.id.btn);
        viewPager = (ViewPager) getActivity().findViewById(R.id.pager);

           btn.setOnClickListener(new View.OnClickListener() 
           {

               @Override
              public void onClick(View v) 
              {
                   viewPager.setCurrentItem(0);


              }
          }); 

        return rootView;
    }

}

your ViewPager is null because you are not initializing the variable. 您的ViewPager为null,因为您没有初始化变量。

You need do 你需要做

public class MoviesFragment extends Fragment {

ViewPager viewPager;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle    savedInstanceState) 
{

   View rootView = inflater.inflate(R.layout.fragment_movies, container, false);

   Button btn = (Button) rootView.findViewById(R.id.btn);
   viewPager = (ViewPager) rootView.findViewById(R.id.some_viewpager);//Initializing
   btn.setOnClickListener(new View.OnClickListener() 
   {

       @Override
      public void onClick(View v) 
      {

          viewPager.setCurrentItem(0);

      }
  }); 


 return rootView;
}}
   viewPager = (ViewPager) getActivity().findViewById(R.id.pager);
     viewPager.setCurrentItem(0);

inside your fragment 你的片段里面

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android:如何通过单击每个不同的按钮来设置当前选项卡? - Android : How to set a current tab selected by clicking on each different button? 如何通过单击Android中的按钮从一个选项卡切换到另一个选项卡? - How to switch from one tab to another tab by clicking on button in Android? 使用 Android TabLayout 时,单击选项卡不会切换当前选项卡 - Clicking on tabs does not switch current tab when using Android TabLayout ActionBarSherlock-通过单击其他选项卡来选择选项卡 - ActionBarSherlock - selecting tab by clicking on other tabs 如何在Android的软键盘上单击“ GO”按钮时使光标不可见? - How to make cursor invisible on clicking “GO” button from soft keyboard in android? 使用按钮切换标签页,通过输入标签页号进入另一个标签页? - Switch tabs using button to go to another tab by entering the tab number? 如何在Android的Tab Host的所有标签中添加通用按钮? - How to add common button to all tabs of Tab Host in Android? 单击android项目中的按钮后,如何在地图上获取当前位置? - How to get a current location on map after clicking button in android project? Android标签:在填写当前标签之前,请勿滑动标签 - Android tabs : Don't swipe tabs until current tab is filled 如何通过单击选项卡1中的按钮切换到选项卡2? - How to switch to tab 2 by clicking a button in tab 1?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM