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

2024-03-30

我试图在 Android 中编写一段代码,通过单击按钮从一个选项卡切换到另一个选项卡。

我知道通过单击选项卡我们可以从一个选项卡切换到另一个选项卡,但是是否可以通过单击一个按钮从一个选项卡切换到另一个选项卡。

我尝试了以下教程。

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/

在本教程中,我按以下方式编辑了 MovieFragment.java 文件。

电影片段.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代码:

<?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>

我在 xml 布局中创建了一个按钮并尝试切换到选项卡 -1 但出现空指针异常。

错误代码:

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)

请建议我一些解决方案或一些好的技术来做到这一点。


您必须在片段内调用父视图。

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;
    }

}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • 如何使用恢复按钮进入上一个活动?

    我的应用程序工作正常 但我的目的是当我关闭应用程序然后再次运行它时 我的应用程序将在最后一个活动中打开 我希望当我再次打开时 主要活动会显示出来 如果我单击 恢复 则最后一个活动将打开 所以我有4个Activity called Main
  • 内存警告后在 iOS 上运行 OpenGL 崩溃

    我遇到了带有 OpenGL 组件的应用程序在 iPad 上崩溃的问题 该应用程序抛出内存警告并崩溃 但它似乎没有使用那么多内存 我错过了什么吗 该应用程序基于 Vuforia 增强现实系统 大量借鉴了 ImageTargets 示例 我需要
  • 为什么将函数转换为除返回类型之外相同的函数类型会失败? [复制]

    这个问题在这里已经有答案了 可能的重复 返回类型是函数签名的一部分吗 https stackoverflow com questions 290038 is the return type part of the function sign
  • onSelectRow 中的 jqGrid 行对象

    如何获取 jqGrid 中选定行上的行对象 我需要实际的对象 而不是单元格值 我已阅读文档 但找不到可以为我提供行对象的方法 由于我使用自定义格式化程序 因此 cellValue 将不起作用 如果你实施自定义格式化程序 http www t
  • 阶乘递归

    我正在尝试编写一种算法来使用递归函数计算数字的阶乘 这是我的代码 include
  • 如果我们不注销 BroadcastReceiver 会发生什么?

    假设我动态注册一个广播接收器这是一个内部类Activity in onCreate 并且不要在代码中的任何地方取消注册它 现在假设finish 被调用 一段时间后 应用程序再次打开 会使用新的接收者对象吗 考虑到具有相同意图过滤器的旧接收器
  • PEP 412 是否会使 __slots__ 变得多余?

    PEP 412 http www python org dev peps pep 0412 在 Python 3 3 中实现 引入了对属性字典的改进处理 有效减少了类实例的内存占用 slots http docs python org 3
  • Python PyPDF2 合并旋转页面

    我正在使用Python报告实验室 https bitbucket org rptlab reportlab canvas 生成带有水印的覆盖文档 将其合并到源 pdf 文档中 带有PyPDF2 https github com mstamy
  • 使用 iTextSharp 实现 PDF 中的图像透明度

    我有一个传入的 jpg 文件 我可以将其颜色设置为透明 当我将图像添加到另一个图像时 效果非常好 我正在尝试使用 iTextSharp 将相同的图像添加到 PDF 但我无法使透明度发挥作用 我尝试了两种方法 但都不起作用 第一种方法是在位图
  • 两个 Android 应用程序如何相互通信?

    两个 Android 应用程序的一般通信架构是什么 Case 1 我有两个Android应用程序 a 一个是服务器 等待客户端请求 处理请求 从某些 sqlite 数据库读取数据 并将结果返回给客户端 该服务器应用程序在其自己独立的 And
  • 是否可以通过 iOS SDK 在 Facebook 请求对话框中显示所有好友?

    我正在使用 Facebook iOS SDK v3 17 我希望允许用户邀请多个朋友到我的应用程序 而不使用可邀请的朋友 API 我没有 Canvas 应用程序 想知道是否真的可以在多好友选择器中看到用户的所有好友 我的代码是 FBWebD
  • 重命名 CloudFormation 模板中的资源

    您可以重命名 CloudFormation 模板中的资源吗 假设我创建了一个堆栈模板来创建单个 lambda 函数 GetTheFunnyPhraseText Type AWS Serverless Function Properties
  • 如何在纯 Ruby 中使用 Capybara(没有 Rails)?

    我正在尝试让 Capybara 在一个简单的 Ruby 脚本中运行 即没有 在 Rails 之外 这是脚本 require rubygems require capybara require capybara dsl include Cap
  • Python子进程:如何三次使用管道? [复制]

    这个问题在这里已经有答案了 我想在以下行中使用子进程 convert loxie orig png bmp mkbitmap f 2 s 2 t 0 48 potrace t 5 progress s o DSC00232 svg 我发现感
  • Spring WebClient 无法从 REST API 读取数据

    在我的 Spring Boot 应用程序中 我想使用 Spring WebClient 从以下 API 读取数据 如下所示 我之前没有经验 在对许多页面和文章进行多次搜索后 我决定使用 Spring WebClient 端点 URL 是 s
  • 从 Flash 或纯 AS3 项目使用 RemoteObject (AMF)

    我最近将一些代码从 Flex 项目移植到新的纯 AS3 项目 当我尝试进行 AMF 调用时 收到如下错误消息 TypeError 错误 1034 类型强制失败 无法将 Object 5425371 转换为 mx messaging mess
  • MVC.net 2 - 更改 ValidationMessageFor 输出的 HTML - 这可以通过模板进行吗?

    MVC net 2 默认输出验证消息 如下所示 span class field validation valid A Validation message span 我希望它这样做
  • 用JPA继承抽象类(+Hibernate)

    您将如何在以下示例代码中配置注释 我想只坚持使用 JPA 注释并避免 Hibernate 特定的依赖项 下面的代码正确吗 Entity public class RefExample extends RefData 这些类将有多个版本 Re
  • Android 警报对话框中的 EditText

    我有一种在片段中创建警报对话框的方法 private void alertDialog final EditText editTextField new EditText this getContext AlertDialog dialog
  • 如何通过单击 Android 中当前选项卡中的按钮来转到其他选项卡?

    我试图在 Android 中编写一段代码 通过单击按钮从一个选项卡切换到另一个选项卡 我知道通过单击选项卡我们可以从一个选项卡切换到另一个选项卡 但是是否可以通过单击一个按钮从一个选项卡切换到另一个选项卡 我尝试了以下教程 http www