有很多这样的问题,但解决方案对我没用。
无论如何,我的主要活动有一个按钮,在其onclick方法中,将我带到另一个活动ViewPowerActivity。我有一个名为power_view.xml的布局xml文件。在里面,我有一些布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/screen_margin"
android:layout_marginRight="@dimen/screen_margin"
android:layout_marginTop="@dimen/screen_margin"
android:orientation="vertical" >
...
ViewPowerActivity具有基本的onCreateMethod:
public class ViewPowerActivity extends Activity {
private final static Powers powers=new StubPowers();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.power_view);
Power power=powers.getPowers().get(0);
View powerView = findViewById(R.layout.power_view);
...
}
...
}
上面的findViewById调用返回null。
如果我在setContentView(...)之后删除所有代码并简单地返回那里,它就会显示空布局。我已经setContentView,我已经清理了项目,我已经尝试将power视图设置为主要活动,以及各种各样的事情。还有什么呢?
答案 0 :(得分:1)
从您的代码中可以清楚地知道 power_view 是一种布局即。 XML。所以R.id.power_view不正确。
您似乎想要访问该布局的父视图。然后执行以下操作。
您必须将id设置为父LinearLayout。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parentLinear"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/screen_margin"
android:layout_marginRight="@dimen/screen_margin"
android:layout_marginTop="@dimen/screen_margin"
android:orientation="vertical" >
...
然后,
View powerView = findViewById(R.id.parentLinear);
如果您想在powerView中使用其他视图,则应在xml布局中将该ID设置为该视图,并通过 findViewById(R.id.your_view)
答案 1 :(得分:0)
power_view.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/screen_margin"
android:layout_marginRight="@dimen/screen_margin"
android:layout_marginTop="@dimen/screen_margin"
android:orientation="vertical" >
public class ViewPowerActivity extends Activity {
private final static Powers powers=new StubPowers();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.power_view);
Power power=powers.getPowers().get(0);
View powerView = (ViewGroup)findViewById(R.id.layout);
...
}
...
}