2015-06-16 118 views
-3

请告诉我为什么我的应用程序无法正常工作我制作了一个咖啡计算器应用程序。下面是XML代码不幸的是,该应用程序已停止工作

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@android:color/white" 
    android:orientation="vertical" > 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="16dp" 
     android:text="@string/disp" 
     android:textColor="@android:color/black" 
     android:textSize="20sp" 
     android:textStyle="bold" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/add" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="16dp" 
      android:onClick="Add" 
      android:text="@string/add" 
      android:textColor="@android:color/black" 
      android:textSize="30sp" 
      android:textStyle="bold" 
      android:background="#E57373" /> 

     <TextView 
      android:id="@+id/sum" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="16dp" 
      android:text="@string/text" 
      android:textColor="@android:color/black" 
      android:textSize="20sp" 
      android:textStyle="bold" /> 

     <Button 
      android:id="@+id/sub" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="16dp" 
      android:onClick="Sub" 
      android:text="@string/sub" 
      android:textColor="@android:color/black" 
      android:textSize="30sp" 
      android:textStyle="bold" 
      android:background="#E57373" /> 
    </LinearLayout> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="16dp" 
     android:text="@string/price" 
     android:textColor="@android:color/black" 
     android:textSize="20sp" 
     android:textStyle="bold" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_margin="16dp" 
      android:text="@string/total" 
      android:textColor="@android:color/black" 
      android:textSize="20sp" 
      android:textStyle="bold" /> 

     <TextView 
      android:id="@+id/res" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="16dp" 
      android:text="@string/res" 
      android:textColor="@android:color/black" 
      android:textSize="20sp" 
      android:textStyle="bold" /> 
    </LinearLayout> 

    <Button 
     android:id="@+id/order" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="210sp" 
     android:onClick="Order" 
     android:text="@string/order" 
     android:textColor="@android:color/black" 
     android:textSize="20sp" 
     android:textStyle="bold" 
     android:textAllCaps="true" 
     android:background="#E57373"/> 

</LinearLayout> 

,这是我的Java代码

package com.example.extra; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.TextView; 

public class MainActivity extends Activity { 

    public int num=0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @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; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 
     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 

    public void Add(View view){ 
     //On click method for Add button 
     TextView text=(TextView)findViewById(R.id.sum); 
     num=num+1; 
     text.setText(num); 
    } 

    public void Sub(View view){ 
     //On click method for Sub button 
     TextView text=(TextView)findViewById(R.id.sum); 
     if(num==0) 
      text.setText(0); 
     else 
     { num=num-1; 
      text.setText(num); 
     } 
    } 

    public void Order(View view){ 
     //On click method for button ORDER 
     TextView text=(TextView)findViewById(R.id.res); 
     text.setText("$" + num*10); 
    } 

} 

当我启动应用程序,然后单击添加按钮或子键,然后应用crashes.But的ORDER按钮工作fine.Please help ...

+4

使用logcat的检查与碰撞相关的Java堆栈跟踪:https://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how -can-i-solve-this – CommonsWare

+2

你也可以用勺子喂答案,并告诉他他将一个Button投射到TextView。 –

+0

@爱德华我没有得到你所说的你可以请详细说明 –

回答

1

你的应用程序崩溃的原因是因为你在你的TextViews int。 setText()需要一个字符串变量或一个指定资源ID的int。在这种情况下,int不指定资源ID,因此它失败。更改SubsetText()Add这样:

text.setText("" + num); 
+0

您可以将资源ID(int)设置为文本。 – mbmc

+0

@tibo如何将资源id(int)设置为文本。 –

+0

'text.setText(R.string.my_string); // my_string在strings.xml中定义' – mbmc

相关问题