我是一个初学的android开发人员,但是一个优秀的Java J2SE Developer。我只是想知道,当我在第一个Android应用程序上工作时:在编译它并且没有错误时遇到在模拟器中运行它的问题! 我的java类代码是: package com.example.helloworld;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.Button;
public class MainActivity extends Activity {
//Variables Declaration
private Button one;
private Button two;
private Button three;
private Button four;
private Button five;
private Button six;
private Button seven;
private Button eight;
private Button nine;
private Button plus;
private Button minus;
private Button divide;
private Button multiply;
private Button zero;
private Button dot;
private Button equal;
private Button clr;
//End of Variables Declaration
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
addListenerOnButton();
}
public void addListenerOnButton(){
one=(Button) this.findViewById(R.id.button1);
two=(Button) this.findViewById(R.id.button2);
three=(Button) this.findViewById(R.id.button3);
four=(Button) this.findViewById(R.id.button4);
five=(Button) this.findViewById(R.id.button5);
six=(Button) this.findViewById(R.id.button6);
seven=(Button) this.findViewById(R.id.button7);
eight=(Button) this.findViewById(R.id.button8);
nine=(Button) this.findViewById(R.id.button9);
zero=(Button) this. findViewById(R.id.button14);
dot=(Button) this.findViewById(R.id.button15);
plus=(Button) this.findViewById(R.id.button13);
equal=(Button) this.findViewById(R.id.button16);
clr=(Button) this.findViewById(R.id.button17);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
.xml是:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@style/AppBaseTheme"
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" >
<LinearLayout
android:id="@+id/lay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:orientation="vertical" >
<EditText
android:id="@+id/numf2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal" />
<EditText
android:id="@+id/opf"
android:layout_width="290dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:ems="10"
android:inputType="numberDecimal|text" />
<EditText
android:id="@+id/numf1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="26dp"
android:ems="10"
android:inputType="numberDecimal" >
<requestFocus />
</EditText>
</LinearLayout>
<Button
android:id="@+id/button2"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/button1"
android:layout_toRightOf="@+id/button1"
android:text="2"
/>
<Button
android:id="@+id/button3"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button2"
android:layout_alignBottom="@+id/button2"
android:layout_toRightOf="@+id/button2"
android:text="3"
/>
<Button
android:id="@+id/button4"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button1"
android:layout_alignLeft="@+id/button1"
android:text="4"
/>
<Button
android:id="@+id/button5"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button4"
android:layout_alignBottom="@+id/button4"
android:layout_toLeftOf="@+id/button3"
android:text="5"
/>
<Button
android:id="@+id/button6"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button5"
android:layout_alignBottom="@+id/button5"
android:layout_alignLeft="@+id/button3"
android:text="6"
/>
<Button
android:id="@+id/button7"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button4"
android:layout_alignLeft="@+id/button4"
android:text="7"
/>
<Button
android:id="@+id/button8"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button5"
android:layout_alignLeft="@+id/button5"
android:text="8"
/>
<Button
android:id="@+id/button9"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button6"
android:layout_alignLeft="@+id/button6"
android:text="9"
/>
<Button
android:id="@+id/button10"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/button9"
android:layout_toRightOf="@+id/button6"
android:text="Button" />
<Button
android:id="@+id/button11"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button10"
android:layout_alignTop="@+id/button6"
android:text="Button" />
<Button
android:id="@+id/button12"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button11"
android:layout_below="@+id/button11"
android:text="Button" />
<Button
android:id="@+id/button13"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button12"
android:layout_alignParentBottom="true"
android:layout_alignRight="@+id/button12"
android:text="+" />
<Button
android:id="@+id/button1"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button13"
android:layout_alignLeft="@+id/lay"
android:text="1" />
<Button
android:id="@+id/button14"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button13"
android:layout_alignBottom="@+id/button13"
android:layout_alignLeft="@+id/button1"
android:layout_alignRight="@+id/button2"
android:text="0" />
<Button
android:id="@+id/button15"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button3"
android:layout_alignRight="@+id/button3"
android:layout_alignTop="@+id/button13"
android:text="dot" />
<Button
android:id="@+id/button16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button13"
android:layout_alignBottom="@+id/button13"
android:layout_alignRight="@+id/lay"
android:layout_toRightOf="@+id/button12"
android:text="=" />
<Button
android:id="@+id/button17"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/button16"
android:layout_alignRight="@+id/lay"
android:layout_alignTop="@+id/button10"
android:text="CLR" />
</RelativeLayout>
请帮助我,我已经搜索了很多,但没有找到任何解决方案我的应用程序根本没有开始,不幸的是它停止了。提前致谢
答案 0 :(得分:1)
我在快速测试项目中测试了您的代码( XML以及Java )。它崩溃了。显然,布局不喜欢其中设置的android:background
属性。
从父RelativeLayout中删除此行将修复它:
android:background="@style/AppBaseTheme"
在我的设备上进行测试:
最终的父RelativeLayout
会看到这个:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rel"
android:layout_width="match_parent"
android:layout_height="wrap_content"
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" >
....
....
</RelativeLayout>
至于为什么它不喜欢该属性是因为它映射到名为styles.xml
的{{1}}中的样式。AppBaseTheme
。如果您使用 Android应用程序项目向导创建项目,就像我一样,我注意到它创建了一个空白 styles.xml,其中包含:
<resources>
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
</resources>
当然,属性android:background="@style/AppBaseTheme"
没有必要为RelativeLayout
提供与android:background
属性兼容的资源。