2017-07-27 271 views
0

我试图通过单击按钮来更改背景,但我无法在java代码中识别约束布局。ConstraintLayout背景

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/red" 
tools:context="frekzok.trafficlight.MainActivity"> 

//here are some button options 

</android.support.constraint.ConstraintLayout> 

MainActivity.java

package frekzok.trafficlight; 

import android.support.constraint.ConstraintLayout; 
import android.support.v4.content.ContextCompat; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.TextView; 
import android.widget.Button; 

public class MainActivity extends AppCompatActivity { 
    private ConstraintLayout mConstraintLayout; 
    private TextView mInfoTextView; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     mConstraintLayout =   
(ConstraintLayout)findViewById(R.id.constraintLayout); 
     mInfoTextView = (TextView)findViewById(R.id.textView2);} 

public void onRedButtonClick(View view) { 
    mInfoTextView.setText(R.string.red); 
    mConstraintLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.red)); 
} 
public void onYellowButtonClick(View view) { 
    mInfoTextView.setText(R.string.yellow); 
    mConstraintLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.yellow)); 
} 
public void onGreenButtonClick(View view) { 
    mInfoTextView.setText(R.string.green); 
    mConstraintLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.green)); 
} 
} 

在主要活动中,第18行,对 “constraintLayout” 一个错误:无法解析符号'constraintLayout' 如何更改背景颜色?

回答

0

您没有将ID添加到约束布局。尝试修改您的xml文件以包含它:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.constraint.ConstraintLayout 
    android:id="@+id/constraintLayout" 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@color/red" 
    tools:context="frekzok.trafficlight.MainActivity"> 
</android.support.constraint.ConstraintLayout>