如何获取fragment里的控件 20

新版安装SDK文件一开始有两个XML文件,activity_main.xml和fragment_main.xml,直接使用findviewbyid方法貌似不行public... 新版安装SDK文件一开始有两个XML文件,activity_main.xml和fragment_main.xml,
直接使用findviewbyid方法貌似不行
public class MainActivity extends ActionBarActivity {

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

if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment()).commit();
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {

// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}

public static class PlaceholderFragment extends Fragment {

public PlaceholderFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
return rootView;
}
}

}
展开
 我来答
中华英才_2008
推荐于2017-12-16
知道答主
回答量:35
采纳率:0%
帮助的人:21.9万
展开全部
不能在onCreate函数中获取控件,以为fragment还没有start,你可以在onStart函数中获取:

@Override
protected void onStart() {
  super.onStart();
  View view = this.findViewById(R.id.btnTest);
  view.setOnClickListener(new android.view.View.OnClickListener(){
  public void onClick(android.view.View v) {
   //TODO...
  }
  });
}

我之前也遇到这样的问题。
百度网友96ffcf7
推荐于2016-02-07 · 知道合伙人互联网行家
百度网友96ffcf7
知道合伙人互联网行家
采纳数:22721 获赞数:118724
从事多年网络方面工作,有丰富的互联网经验。

向TA提问 私信TA
展开全部
1、在Fragment中view.getActivity().findViewById(R.id.xx);
2、其中getActivity可以获取到该Fragment引用的Activity,
3、之后通过findViewById获取到其他与该Activity相关联的Fragment中的控件引用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
greystar_cn
2018-07-25 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
1、在Fragment中view.getActivity().findViewById(R.id.xx);
2、其中getActivity可以获取到该Fragment引用的Activity,
3、之后通过findViewById获取到其他与该Activity相关联的Fragment中的控件引用。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
狂蕤q4
2014-05-23 · 超过49用户采纳过TA的回答
知道答主
回答量:108
采纳率:0%
帮助的人:47.4万
展开全部
你的Activity里面注册过fragment吗?
像这样========》

private void InitViewPager() {
mPager = (ViewPager) findViewById(R.id.vPager);
fragmentsList = new ArrayList<Fragment>();

Fragment activityfragment = TestFragment.newInstance("Hello Activity.");
Fragment groupFragment = TestFragment.newInstance("Hello Group.");
Fragment friendsFragment=TestFragment.newInstance("Hello Friends.");
Fragment chatFragment=TestFragment.newInstance("Hello Chat.");

fragmentsList.add(activityfragment);
fragmentsList.add(groupFragment);
fragmentsList.add(friendsFragment);
fragmentsList.add(chatFragment);

mPager.setAdapter(new MyFragmentPagerAdapter(getSupportFragmentManager(), fragmentsList));
mPager.setCurrentItem(0);
mPager.setOnPageChangeListener(new MyOnPageChangeListener());
}
追问
复制粘贴有意思?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式