扩展类AppCompatButton时出错

时间:2015-11-05 18:53:04

标签: java android android-layout user-interface android-appcompat

我正在制作项目和要求是用户界面对于所有Android设备是相同的。为了达到这个要求,我用Google搜索并获得了在所有Android版本中使用新AppCompact库用于相同UI的解决方案。

所以问题是,我的布局中有一个按钮,我使用 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

1 个答案:

答案 0 :(得分: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'
 }