[英]How to open new activity on button click inside TabLayout using Fragments
我想用 Tabview 创建一个应用程序,所以我启动了一个带有选项卡式活动和操作栏选项卡(带有 viewPager)的应用程序。然后我创建了名为 tab1、tab2、tab3 的片段。 您也可以在以下链接和源代码中找到我在 tabview 上方遵循的教程
https://www.simplifiedcoding.net/android-tablayout-example-using-viewpager-fragments/
从这里开始,我的问题从上面的三个选项卡开始,我创建了图像视图,然后单击该按钮向上按钮我想打开新活动。我是编程新手,希望我能得到答案。 我将非常感谢您的帮助。
这是我想在单击按钮时调用新活动的选项卡代码。
tab1.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">
<ImageView
android:layout_width="match_parent"
android:layout_height="100dp"
android:background="#ca064006"
android:id="@+id/imageView" />
<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true"
android:layout_marginTop="88dp"
android:id="@+id/button" />
</RelativeLayout>
Tab1.java
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class Tab1 extends Fragment{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.messages, container, false);
}
}
单击上面代码中的按钮,我想调用新活动,请你编辑代码。
首先,您必须在代码中绑定此按钮,然后使用Intent
在该按钮的 onClick 事件上打开另一个活动
在片段中执行以下操作:
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.messages, container, false);
Button button = (Button) rootView.findViewById(R.id.YOUR_BUTTON_ID_IN_XML); //Binding the button view
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// Do something in response to button click
Intent intent = new Intent (Tab1.this.getActivity(), OTHER-ACTIVITY-CLASS-NAME.class);
Tab1.this.getActivity().startActivity(intent);
}
});
return rootView;
}
我已经发布了一个类似问题的答案,所以为了节省时间,我的答案是:
我遇到了同样的问题,我通过从 firstFragment 类调用我的 MainActivity viewpager 轻松解决了它,然后轻松地将 viewpager 的当前项目设置为您想要的选项卡的索引。
这是我放置在第一个选项卡片段的 onClick 方法中的代码,以便我转到第三个选项卡片段;
ViewPager viewPager = getActivity().findViewById(R.id.simpleViewPager);
viewPager.setCurrentItem(2);
我的回答可能会迟到,但我希望它能帮助其他可能遇到这个挑战的人。
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_tab, container, false);
Button button = (Button) rootView.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent (Tab1.this.getActivity(), //your_activity.class);
Tab1.this.getActivity().startActivity(intent);
}
});
return rootView;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.