点击按钮时,安卓工作室中的应用崩溃.显示应用名称已停止工作



这是我的xml代码。请帮助调试。

 <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:weightSum="1">
    <TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/txtMargins"
    android:text="@string/hello_world"
    android:textSize="24sp" />
    <TextView
    android:id="@+id/quantity_text_view"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/txtMargins"
    android:text="@string/quantityNum"/>

    <Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="@dimen/txtMargins"
    android:text="@string/Order"
    android:onClick="submitOrder"/>
    </LinearLayout>

这是 java 代码。

 package com.example.kartik.myapplication;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.TextView;
    public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    enter code here
    public void submitOrder(View view) {
        display(1);
    }
    private void display(int number) {
        TextView quantityTextView=
    (TextView)findViewById(R.id.quantity_text_view);
        quantityTextView.setText(number);
    }
    }

请帮忙。有没有一种方法可以在不使用onclick侦听器的情况下防止应用程序崩溃。onClick xml 属性与 onClick 侦听器有何不同。

这是日志猫。

    --------- beginning of crash
06-11 02:34:18.584 2457-2457/com.example.kartik.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                Process: com.example.kartik.myapplication, PID: 2457
                                                                                java.lang.IllegalStateException: Could not execute method for android:onClick
                                                                                    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293)
                                                                                    at android.view.View.performClick(View.java:5610)
                                                                                    at android.view.View$PerformClick.run(View.java:22265)
                                                                                    at android.os.Handler.handleCallback(Handler.java:751)
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                    at android.os.Looper.loop(Looper.java:154)
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6077)
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
                                                                                 Caused by: java.lang.reflect.InvocationTargetException
                                                                                    at java.lang.reflect.Method.invoke(Native Method)
                                                                                    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288)
                                                                                    at android.view.View.performClick(View.java:5610) 
                                                                                    at android.view.View$PerformClick.run(View.java:22265) 
                                                                                    at android.os.Handler.handleCallback(Handler.java:751) 
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                                    at android.os.Looper.loop(Looper.java:154) 
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6077) 
                                                                                    at java.lang.reflect.Method.invoke(Native Method) 
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
                                                                                 Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x1
                                                                                    at android.content.res.Resources.getText(Resources.java:331)
                                                                                    at android.widget.TextView.setText(TextView.java:4554)
                                                                                    at com.example.kartik.myapplication.MainActivity.display(MainActivity.java:22)
                                                                                    at com.example.kartik.myapplication.MainActivity.submitOrder(MainActivity.java:17)
                                                                                    at java.lang.reflect.Method.invoke(Native Method) 
                                                                                    at android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 
                                                                                    at android.view.View.performClick(View.java:5610) 
                                                                                    at android.view.View$PerformClick.run(View.java:22265) 
                                                                                    at android.os.Handler.handleCallback(Handler.java:751) 
                                                                                    at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                                    at android.os.Looper.loop(Looper.java:154) 
                                                                                    at android.app.ActivityThread.main(ActivityThread.java:6077) 
                                                                                    at java.lang.reflect.Method.invoke(Native Method) 
                                                                                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
                                                                                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

在logCat中,问题在于:

quantityTextView.setText(number);

TextView 具有多个 setText 签名,当您向其发送整数时,它会尝试使用:

 public final void setText(int resid) 

并尝试查找 ID 为 1 的字符串资源。要将 TextView 的文本设置为整数,应使用将其转换为字符串并按如下所示进行设置:

quantityTextView.setText(Integer.toString(number));

最新更新