我正在制作项目和要求是用户界面对于所有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
答案 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'
}