最新版的android 怎么对MainActivity.java中怎么对fragment_main.xml中的组件进行操作

private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

button = (Button) this.findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

}
});

像这样写会报出button空指针
button是在fragment_main.xml中定义的
求大神指教在MainActivity.java中对fragment_main.xml中的组件进行操作的方法

第1个回答  2014-03-30
只有一个错误,就是button要在activity_main.xml中定义,以为你加载的是R.layout.activity_main

我知道你说的这种情况,就是新建的工程会有两个文件目录,是吧?其实,可以完全按以前的操作就行,不要管多出来的另一个目录 好像是v7版本的支持框架。也不要删除或者关闭,否则会报错,就在activity_main.xml中定义所用 视图组件就行了,然后再onCreate()方法中加载。
第2个回答  推荐于2016-09-30
你在onStart()方法中这样写就行了
fragment为你activity中添加的fragment对象,button=(Button)fragment.getView().findViewById(R.id.button1);
button.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

}
});

你这样就不会报错了追问

fragment对象怎么在activity中获得??

追答

那个是你自己创建的啊, 你在oncreate()中创建的时候把他保存为全局变量就行了。

本回答被提问者和网友采纳
第3个回答  2014-03-30
为什么不在Fragment的类里面去操作呢?

新版android 怎么对MainActivity.java中怎么对activity_main.xml...
你在onStart()方法中这样写就行了 fragment为你activity中添加的fragment对象,button=(Button)fragment.getView().findViewById(R.id.button1);button.setOnClickListener(new OnClickListener() { Override public void onClick(View v) { } });你这样就不会报错了 这样可以么?

Fragment的使用
1.1.2 动态添加 动态添加Fragment是Fragment使用中的重要功能。我们首先修改了`activity_main.xml`,在布局中添加了一个`FrameLayout`用于显示Fragment。然后,我们创建了三个不同的Fragment类,分别设置了它们的布局。动态添加主要分为五步:1. 创建待添加的碎片实例。2. 获取FragmentManager,一般在Activit...

新建Android项目layout文件下的两个XML文件的用法
1.现在新建一个Android工程,在Layout文件夹里面会新建两个XML的文件,两个分别是activity_main.xml和fragment_main.xml,2.在默认情况下,试图运行一下方法,总是会出错,3.解决方法,首先,把onCreate()方法中的activity_main换成fragment_main,然后,把下面的if()语句注释掉,再尝试运行,就没有...

Android应用开发,微信下方四个按钮切换是怎么实现的
<?xml version="1.0" encoding="utf-8"?><TabHost android:id="@id\/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android=" <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orie...

fragment-mail.xml怎么进行可视化布局编辑
fragment是运行在Activity中的,加载布局需要用到Context的API。1.Fragment是android3.0引入的新控件,果应用使用在3.0以下、1.6及以上的版本,需要引入v4包。2.Fragment支持在不同的Activity中使用并且可以处理自己的输入事件以及生命周期方法等。3.Fragment的生命周期方法依赖于Activity的生命周期,例如一个...

AndroidAnnotation常用注解使用说明
java EActivity(R.layout.activity_main)public class MainActivity extends Activity { \/\/ ...} 常用的注解包括`@EActivity`、`@EFragment`、`@EService`等,被注解的组件才能使用其他注解功能。资源引用注解 java ViewById(R.id.tv_title) \/\/ 可省略括号和id TextView tv_title;Extra("mTitle")...

android怎么获得fragment的索引
使用XML添加Fragment到Activity 尽管Fragment可以被多个Activity重用,但是您也必须把Fragment关联到一个FragmentActivity上。可以使用XML布局文件的方式来实现这种关联。说明:上面的所说的FragmentActivity适用在API在3.0以下的版本,3.0及以上的版本可以使用普通的Activity。Fragment的生命周期方法依赖于Activity的...

Android基于Databinding的入门级MVVM模式搭建
为了关联VM和layout文件,我们需要在MainActivity中调用DataBindingUtil.setContentView()方法,并绑定MainVM到布局文件中,Fragment可以通过DataBindingUtil.inflate(inflater,layoutRes,container,false);来进行页面布局绑定:OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState)...

android Fragment中怎么更新数据
Fragment都创建好之后,我们来写Activity的逻辑,我们需要为ViewPager指定一个PagerAdapter。google为我们提供了方便的类叫FragmentPagerAdapter,我们只需继承这个类并复写getItem和getCount即可。MainActivity如下:package com.example.viewpagerdemo2;import android.os.Bundle;import android.support.v4.app....

Android组件之Fragment(一)---基础知识与运用
1.Fragment是Google官方引入的一个为了适配大屏、多页面的一个组件。您可以理解为它就是一个类而已,只不过里面包含了View,并且与activity的生命周期进行了关联。 2.动态加载与静态加载相对来说,建议使用动态加载,静态加载固定在了xml文件中,永远不变。 3.replace的fragment如果不在前台,会执行...

相似回答