【发布时间】:2014-07-15 03:53:25
【问题描述】:
我有以下活动:
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 StartFragment())
.commit();
}
Button login = (Button) findViewById(R.id.loginButton);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Intent intent = new Intent(MainActivity.this,LoginActivity.class);
startActivity(intent);
}
});
}
当我尝试为R.id.loginButton 调用findViewByID 时,我得到了一个 NPE,我猜这是因为loginButton 在一个单独的片段中,我有:
public static class StartFragment extends Fragment {
public StartFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_main, container, false);
}
}
但是,我不确定如何解决此问题,以便找到 loginButton ID。我以前没有使用过片段,所以我意识到我可能正在错误地使用它们/实现它们。 fragment_main 在LinearLayout 中包含几个按钮,而activity_main 只有一个FrameLayout。
【问题讨论】:
标签: java android nullpointerexception android-framelayout