我必须制作一个用户输入的应用程序,然后人工智能响应,但当我输入一些文本并按发送时,它会给我提示消息"不幸的是,应用已经停止"。
这是我的代码:
以下是发送代码:
<Button
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Button"
android:id="@+id/Send_btn"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:onClick="Zdenka" />...
这是.java文件的开头:
EditText Text, OdgBox;
String odg;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
EditText Text = (EditText) findViewById(R.id.Txt); //User input
Button Btn = (Button) findViewById(R.id.Send_btn); //Send button
TextView Output = (TextView) findViewById(R.id.TextView); //AI output
}...
java文件的最后一部分:
...
public void Zdenka (TextView Output, EditText Text, String odg) {
String Text1 = Text.toString().toLowerCase();
if (Text1 == "živjo") {
odg = "Živjo";
}
else if (Text1 == "zivjo") {
odg = "oj";
}
else{ odg = "Ne razumem."; }
Output.setText(odg);
感谢您的帮助!
答案 0 :(得分:2)
我可以从您的代码中看到:您需要更改onClick的方法:
您需要更换
public void Zdenka (TextView Output, EditText Text, String odg) {...}
与
public void Zdenka (View v) {...}
希望它有所帮助。
执行此操作后,请确保使用equals
或equalsIgnoreCase
来比较String,因为Squonk说。 ==
将比较对象,而不是实际的字符串。