问题1)由于某种原因,当我点击“生成”时,它不会显示任何文本。我希望按钮执行以下操作:在用户输入3个值(int)之后,例如:1,1,2和单击“生成”按钮,显示消息应为“Isosceles Triangle:2 Congruent Sides”---这之前有效但我的逻辑错误,我在这里问了一个问题:If statement not working for android programming。然后我尝试实施建议,现在它有一个不同的错误
问题2)我的逻辑是否正确?修复此问题后,我能否显示正确的结果?
请帮助,我是android编程的新手。非常感谢提前。
java代码:
package com.example.trianglegame;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class TriangleGame extends Activity {// implement-have to use all of the
// methods
// set up the variables here
Button Gen;
EditText Input1;
EditText Input2;
EditText Input3;
String input1;
String input2;
String input3;
TextView Display;
int a;
int b;
int c;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.game);
// assigning the values
Input1 = (EditText) findViewById(R.id.editText1);
Input2 = (EditText) findViewById(R.id.editText2);
Input3 = (EditText) findViewById(R.id.editText3);
Display = (TextView) findViewById(R.id.textView5);
Gen = (Button) findViewById(R.id.button1);
Gen.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
// getting the text and converting it to string value
input1 = Input1.getText().toString();
input2 = Input2.getText().toString();
input3 = Input2.getText().toString();
// converting those text values back into int
a = Integer.parseInt(input1);
b = Integer.parseInt(input2);
c = Integer.parseInt(input3);
// displaying the message
if ((a == b && b != c) || (a == c && b != c)
|| (b == c && a != c)) {
Display.setText("Isosceles Triangle: 2 Congruent Sides");
} else if (a == b && a == c) {
Display.setText("Equilateral Triangle:All sides are equal");
}
else if (a != b && a != c && b != c) {
Display.setText("Scalene Triangle: No Congruent Sides");
} else {
Display.setText("Error");
}
}
});
}
}
xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/enter_text" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/side_1" />
<EditText
android:id="@+id/editText1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/type_hint"
android:inputType="number" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/side_2" />
<EditText
android:id="@+id/editText2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/type_hint"
android:inputType="number" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/type_hint"
android:text="@string/side_3" />
<EditText
android:id="@+id/editText3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/type_hint"
android:inputType="number" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/generate" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/clear" />
</LinearLayout>
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
LogCat错误
09-21 18:50:20.739: E/Zygote(32): setreuid() failed. errno: 2
09-21 18:50:24.939: E/Zygote(32): setreuid() failed. errno: 17
09-21 18:50:25.579: E/BatteryService(58): usbOnlinePath not found
09-21 18:50:25.579: E/BatteryService(58): batteryVoltagePath not found
09-21 18:50:25.579: E/BatteryService(58): batteryTemperaturePath not found
09-21 18:50:25.589: E/SurfaceFlinger(58): Couldn't open /sys/power/wait_for_fb_sleep or /sys/power/wait_for_fb_wake
09-21 18:50:28.279: E/EventHub(58): could not get driver version for /dev/input/mouse0, Not a typewriter
09-21 18:50:28.279: E/EventHub(58): could not get driver version for /dev/input/mice, Not a typewriter
09-21 18:50:28.379: E/System(58): Failure starting core service
09-21 18:50:28.379: E/System(58): java.lang.SecurityException
09-21 18:50:28.379: E/System(58): at android.os.BinderProxy.transact(Native Method)
09-21 18:50:28.379: E/System(58): at android.os.ServiceManagerProxy.addService(ServiceManagerNative.java:146)
09-21 18:50:28.379: E/System(58): at android.os.ServiceManager.addService(ServiceManager.java:72)
09-21 18:50:28.379: E/System(58): at com.android.server.ServerThread.run(SystemServer.java:184)
09-21 18:50:28.749: E/SoundPool(58): error loading /system/media/audio/ui/Effect_Tick.ogg
09-21 18:50:28.749: E/SoundPool(58): error loading /system/media/audio/ui/KeypressStandard.ogg
09-21 18:50:28.749: E/SoundPool(58): error loading /system/media/audio/ui/KeypressSpacebar.ogg
09-21 18:50:28.749: E/SoundPool(58): error loading /system/media/audio/ui/KeypressDelete.ogg
09-21 18:50:28.749: E/SoundPool(58): error loading /system/media/audio/ui/KeypressReturn.ogg
09-21 18:50:29.359: E/ThrottleService(58): Could not open GPS configuration file /etc/gps.conf
09-21 18:50:29.819: E/logwrapper(133): executing /system/bin/tc failed: No such file or directory
09-21 18:50:29.889: E/logwrapper(135): executing /system/bin/tc failed: No such file or directory
09-21 18:50:29.889: E/logwrapper(136): executing /system/bin/tc failed: No such file or directory
09-21 18:50:32.957: E/HierarchicalStateMachine(58): TetherMaster - unhandledMessage: msg.what=3
答案 0 :(得分:0)
而不是:
input2 = Input2.getText().toString();
input3 = Input2.getText().toString();
使用:
input2 = Input2.getText().toString();
input3 = Input3.getText().toString();
答案 1 :(得分:0)
据我所知,逻辑很好,虽然我会以不同的方式检查,更具可读性。
int n = 0; //number of equal sides
if(a==b)
n++;
if(a==c)
n++;
if(b==c)
n++;
//Display seems like a class, but is a variable, should start with lower case and have camel notation such as displayTextView
switch(n) {
case 0:
Display.setText("Scalen");
break;
case 1:
Display.setText("Isosceles");
break;
case 2: case 3:
Display.setText("Equilateral");
break;
}
就它显示的错误而言,你可以发布日志吗?