我正在尝试从标签片段开始一个活动,似乎无法让它工作! findviewbyid以红色突出显示,并且使用意图从片段转到新活动对我来说也不起作用!有人可以帮助澄清这一点,并告诉我如何从片段到新的活动!我已将代码包含在我遇到问题的地方,谢谢
public class tab2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view =inflater.inflate(R.layout.tab2,container,false);
return view;
ImageButton pigsButton = (ImageButton) findViewById(R.id.pigsButton);
pigsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(tab2.this, pigs_story.class);
startActivity(i);
}
});
}
}
答案 0 :(得分:2)
试试这个
使用view.findViewById();
并重新排列return语句。
public class tab2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view =inflater.inflate(R.layout.tab2,container,false);
ImageButton pigsButton = (ImageButton) view.findViewById(R.id.pigsButton);
pigsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(tab2.this, pigs_story.class);
startActivity(i);
}
});
return view;
}
}
答案 1 :(得分:1)
您正在做的是在加载所需布局后返回视图,将返回视图语句放在最后一个OnCreate函数中。
public class tab2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view =inflater.inflate(R.layout.tab2,container,false);
ImageButton pigsButton = (ImageButton) findViewById(R.id.pigsButton);
pigsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(tab2.this, pigs_story.class);
startActivity(i);
finish();
}
});
return view;
}
}