2015-11-05 116 views
2

我正在项目和要求是用户界面是相同的所有Android设备。为了实现这个要求,我GOOGLE了,我得到的解决方案使用新的AppCompact库在同一个UI在所有的Android版本。错误膨胀类AppCompatButton

所以问题是,有一个在我的布局一个按钮,我用AppCompatButton,而不是按钮

即使我对该布局的活动扩展了AppCompatActivity。 但是当我运行该项目时,我得到下面的错误和应用程序崩溃。

这里是我的活动和布局

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    AppCompatButton appCompatButton = (AppCompatButton) findViewById(R.id.btn_submit); 
    appCompatButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getApplicationContext(), "Success", Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    } 
} 

布局代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"     
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:context="com.app.myway.MainActivity"> 

    <EditText 
     android:id="@+id/et_email" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="100dp" 
     android:hint="@string/add_email" 
     android:paddingLeft="16dp" 
     android:paddingRight="16dp" /> 

    <AppCompatButton 
     android:id="@+id/btn_submit" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/submit" /> 
</RelativeLayout> 

错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.myway/com.app.myway.MainActivity}: android.view.InflateException: Binary XML file line #17: Error inflating class AppCompatButton 

回答

3

你需要:

<android.support.v7.widget.AppCompatButton 
    android:id="@+id/btn_submit" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="@string/submit" /> 

并且在你的build.gradle中:

dependencies{ 
    compile 'com.android.support:appcompat-v7:23.1.0' 
} 
+0

噢,非常感谢。

相关问题