这是我的onCreate方法。我试图设置按钮以将布局背景的背景更改为不同的颜色。但是,findViewById无法获取布局。
我通过给它另一个线性布局孩子来修复它,但我仍然想知道为什么它不起作用。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button1 = (Button) findViewById(R.id.button1);
LinearLayout layout = (LinearLayout) findViewById(R.id.linearLayout1);
//Below is code in question: Method is not resolved to type.
button1.setOnClickListener(new OnClickListener(){
public void onClick(View view) {
layout.setBackgroundColor(Color.argb(100, 255, 0, 0));
}
});
}
HEre is my XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:id="linearLayout1"
>
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Button" />
</LinearLayout>
答案 0 :(得分:2)
您的id
声明错误。
应该是
android:id="@+id/linearLayout1"
而不是
android:id="linearLayout1"
并尝试使用View.OnClickListener
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
layout.setBackgroundColor(Color.argb(100, 255, 0, 0));
}
});
答案 1 :(得分:1)
格式应为:
android:id="@+id/linearLayout1"
id表示类型。 +表示您正在添加新ID。
答案 2 :(得分:0)
失败的Id声明是LinearLayout,您应该按照按钮更改线性布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity"
android:id="@+id/linearLayout1">
<Button
android:id="@+id/button1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Button" />
</LinearLayout>