Android选项卡式活动和java代码?

问题描述:

我在选项卡式活动中有3个选项卡。我创建了3个扩展Fragment的类并添加了我的布局。当我运行它时,它工作正常。所以我添加了一些EditText小部件和一个Button到我的第二个选项卡。我的问题是:例如,我在哪里放置java代码来处理该按钮的onClickListener。 我试图在主选项卡式活动课中做到这一点,但随后应用程序崩溃。Android选项卡式活动和java代码?

+0

如果您需要代码,只需在Android Studio中创建一个新项目,然后选择“Tabbed Activity”而不是“Empty Activity”。你会找到一个完美的代码,你可以参考它。 – zackygaurav

您可以将该代码放在选项卡活动的相关片段中。 应用程序将崩溃,因为活动无法访问在片段中被夸大的视图。 你可以这样做:

public class PageFragment extends Fragment { 
    public static final String ARG_PAGE = "ARG_PAGE"; 

    private int mPage; 

    public static PageFragment newInstance(int page) { 
     Bundle args = new Bundle(); 
     args.putInt(ARG_PAGE, page); 
     PageFragment fragment = new PageFragment(); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mPage = getArguments().getInt(ARG_PAGE); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View view = inflater.inflate(R.layout.fragment_page, container, false); 
     TextView textView = (TextView) view; 
     textView.setText("Fragment #" + mPage); 
     return view; 
    } 
} 

详细检查了这tutorial

您必须将按钮点击代码添加到相应的片段,即您的案例中的第二个选项卡。不要在托管该片段的活动上编写代码。

+0

但在Java的文件,我不能使用findViewById –

+0

。利用此代码对你的第二个片段 @覆盖 公共查看onCreateView(LayoutInflater吹气,ViewGroup中容器,包savedInstanceState){ 最后查看视图= inflater.inflate(R .layout.second_fragment,container,false); \t final Button recyclerView =(Button)view.findViewById(R.id.mybutton); //在此处添加按钮点击代码 返回视图; } –

+0

@slaven你必须在片段中使用view.findviewbyid –