如何获取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;
}
}
} 展开
直接使用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;
}
}
} 展开
4个回答
展开全部
不能在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...
}
});
}
我之前也遇到这样的问题。
@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...
}
});
}
我之前也遇到这样的问题。
推荐于2016-02-07 · 知道合伙人互联网行家
关注
展开全部
1、在Fragment中view.getActivity().findViewById(R.id.xx);
2、其中getActivity可以获取到该Fragment引用的Activity,
3、之后通过findViewById获取到其他与该Activity相关联的Fragment中的控件引用。
2、其中getActivity可以获取到该Fragment引用的Activity,
3、之后通过findViewById获取到其他与该Activity相关联的Fragment中的控件引用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2018-07-25 · 知道合伙人软件行家
关注
展开全部
1、在Fragment中view.getActivity().findViewById(R.id.xx);
2、其中getActivity可以获取到该Fragment引用的Activity,
3、之后通过findViewById获取到其他与该Activity相关联的Fragment中的控件引用。
2、其中getActivity可以获取到该Fragment引用的Activity,
3、之后通过findViewById获取到其他与该Activity相关联的Fragment中的控件引用。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的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());
}
像这样========》
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());
}
追问
复制粘贴有意思?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询