gpt4 book ai didi

android - 计算器 : error No such file or directory, 跳帧

转载 作者:行者123 更新时间:2023-11-30 03:03:31 24 4
gpt4 key购买 nike

我正在制作计算器,但在启动后,当我按下计算器的任何按钮(0、1、2 等)时。不幸的是我的计算器停止工作了。在 logcat 中出现错误..我缺少什么??

代码:

package com.example.calculator;

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class Calculator extends Activity implements OnClickListener {

String initialnum="0";
TextView textview;
char operator=' ';
int result;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculator);

TextView textview= (TextView) findViewById(R.id.textView1);
textview.setText("0");


((Button) findViewById(R.id.button00)).setOnClickListener(this);
((Button) findViewById(R.id.button01)).setOnClickListener(this);
((Button) findViewById(R.id.button02)).setOnClickListener(this);
((Button) findViewById(R.id.button03)).setOnClickListener(this);
((Button) findViewById(R.id.button04)).setOnClickListener(this);
((Button) findViewById(R.id.button05)).setOnClickListener(this);
((Button) findViewById(R.id.button06)).setOnClickListener(this);
((Button) findViewById(R.id.button07)).setOnClickListener(this);
((Button) findViewById(R.id.button08)).setOnClickListener(this);
((Button) findViewById(R.id.button09)).setOnClickListener(this);
((Button) findViewById(R.id.buttonc)).setOnClickListener(this);
((Button) findViewById(R.id.buttondivide)).setOnClickListener(this);
((Button) findViewById(R.id.buttonequal)).setOnClickListener(this);
((Button) findViewById(R.id.buttonminus)).setOnClickListener(this);
((Button) findViewById(R.id.buttonmultiply)).setOnClickListener(this);
((Button) findViewById(R.id.buttonplus)).setOnClickListener(this);

}
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {

case R.id.button00:
case R.id.button01:
case R.id.button02:
case R.id.button03:
case R.id.button04:
case R.id.button05:
case R.id.button06:
case R.id.button07:
case R.id.button08:
case R.id.button09:

String digit= ((Button) v).getText().toString();
if (initialnum.equals("0")) {
initialnum= digit;
} else {
initialnum +=digit;
}
textview.setText(initialnum);

if (operator == '=') {
result= 0;
operator=' ';
} break;

case R.id.buttonc:
result=0;
operator=' ';

case R.id.buttondivide:
compute();
operator='/';
break;

case R.id.buttonminus:
compute();
operator='-';
break;

case R.id.buttonmultiply:
compute();
operator='*';
break;

case R.id.buttonplus:
compute();
operator='+';
break;

case R.id.buttonequal:
compute();
operator='=';
break;
}

}

private void compute() {
int number= Integer.parseInt(initialnum);
// TODO Auto-generated method stub
if (operator==' ') {
result= number;
} else if (operator=='+') {
result+= number;
}else if (operator=='-') {
result-= number;
}else if (operator=='*') {
result*= number;
} else if (operator=='/') {
result/= number;
}
textview.setText(result);
}

}

错误日志:

03-05 13:10:52.539: E/Trace(805): error opening trace file: No such file or directory (2)
03-05 13:10:53.359: I/Choreographer(805): Skipped 55 frames! The application may be doing too much work on its main thread.
03-05 13:10:53.399: D/gralloc_goldfish(805): Emulator without GPU emulation detected.
03-05 13:14:46.659: D/AndroidRuntime(805): Shutting down VM
03-05 13:14:46.669: W/dalvikvm(805): threadid=1: thread exiting with uncaught exception (group=0x40a13300)
03-05 13:14:46.699: E/AndroidRuntime(805): FATAL EXCEPTION: main
03-05 13:14:46.699: E/AndroidRuntime(805): java.lang.NullPointerException
03-05 13:14:46.699: E/AndroidRuntime(805): at com.example.calculator.Calculator.onClick(Calculator.java:64)
03-05 13:14:46.699: E/AndroidRuntime(805): at android.view.View.performClick(View.java:4084)
03-05 13:14:46.699: E/AndroidRuntime(805): at android.view.View$PerformClick.run(View.java:16966)
03-05 13:14:46.699: E/AndroidRuntime(805): at android.os.Handler.handleCallback(Handler.java:615)
03-05 13:14:46.699: E/AndroidRuntime(805): at android.os.Handler.dispatchMessage(Handler.java:92)
03-05 13:14:46.699: E/AndroidRuntime(805): at android.os.Looper.loop(Looper.java:137)
03-05 13:14:46.699: E/AndroidRuntime(805): at android.app.ActivityThread.main(ActivityThread.java:4745)
03-05 13:14:46.699: E/AndroidRuntime(805): at java.lang.reflect.Method.invokeNative(Native Method)
03-05 13:14:46.699: E/AndroidRuntime(805): at java.lang.reflect.Method.invoke(Method.java:511)
03-05 13:14:46.699: E/AndroidRuntime(805): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
03-05 13:14:46.699: E/AndroidRuntime(805): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
03-05 13:14:46.699: E/AndroidRuntime(805): at dalvik.system.NativeStart.main(Native Method)

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginTop="10dp"
android:gravity="right|top"
android:orientation="vertical" >






<TextView
android:id="@+id/textView1"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="10dp"
android:background="#cccccc"
android:gravity="right"
android:paddingTop="10dp"
android:text="TextView"
android:textSize="25dp" />


<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.50"
android:layout_marginTop="10dp" >

<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >




<Button
android:id="@+id/button07"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="7" />




<Button
android:id="@+id/button08"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="8" />



<Button
android:id="@+id/button09"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="9" />



<Button
android:id="@+id/buttondivide"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="/" />

</TableRow>

<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >




<Button
android:id="@+id/button04"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="4" />




<Button
android:id="@+id/button05"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="5" />




<Button
android:id="@+id/button06"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="6" />



<Button
android:id="@+id/buttonmultiply"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="*" />

</TableRow>

<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >




<Button
android:id="@+id/button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="1" />




<Button
android:id="@+id/button02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="2" />




<Button
android:id="@+id/button03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="3" />



<Button
android:id="@+id/buttonminus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="-" />

</TableRow>

<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >




<Button
android:id="@+id/button00"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="0" />




<Button
android:id="@+id/buttonc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="c" />




<Button
android:id="@+id/buttonequal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="=" />



<Button
android:id="@+id/buttonplus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="+" />

</TableRow>
</TableLayout>

最佳答案

你在 onClick 方法中有 nullPointerException,因为 textview 没有初始化。

在 onCreate 中更改此行

TextView textview= (TextView) findViewById(R.id.textView1);

为此:

textview= (TextView) findViewById(R.id.textView1);

关于android - 计算器 : error No such file or directory, 跳帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22191760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com