我正在尝试为片段内的按钮(R.id.addclick)设置onclick方法。没有错误,但每次我启动模拟器并按下按钮时,它会一直显示“不幸的是......已停止”。请给我一些建议。
first_layout xml:
Button
android:id="@+id/addclick"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/edit17"
android:layout_marginTop="16dp"
android:layout_toEndOf="@+id/textView32"
android:layout_toRightOf="@+id/textView32"
android:onClick="addclick"
android:text="submit" />
我的整个片段代码:
package com.example.administrator.realrandd;
import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
/**
* Created by Administrator on 2017-10-28.
*/
public class FirstLayout extends Fragment implements View.OnClickListener {
View v;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
v = inflater.inflate(R.layout.first_layout, container, false);
Button b = (Button) v.findViewById(R.id.addclick);
b.setOnClickListener(this);
return v;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.addclick:
EditText number1 = (EditText)v.findViewById(R.id.edit1);
EditText number2 = (EditText)v.findViewById(R.id.edit2);
TextView result = (TextView)v.findViewById(R.id.Final);
int n1 = Integer.parseInt(number1.getText().toString());
int n2 = Integer.parseInt(number2.getText().toString());
result.setText(Integer.toString(n1+n2));
break;
}
}
}
答案 0 :(得分:1)
名称不匹配:在您的布局中,您指的是名为
的方法android:onClick="addclick"
但在您的代码中,您设置了一个名为
的方法public void onClick(View v) {
和..." addclick" !=" onClick"
您应该使这两个名字匹配。
请在代码中按顺序命名您的方法:
public void addclick(View v) {
答案 1 :(得分:0)
我认为以下文字字段为空。这就是为什么空字符串不能转换为int。
$ ./bin/cnvstrtoint < ../dat/numdata.txt
str[ 0] : 8 arr[ 0] : 8
str[ 1] : 2 arr[ 1] : 2
str[ 2] : 0 arr[ 2] : 0
str[ 3] : 10 arr[ 3] : 10
str[ 4] : 3 arr[ 4] : 3
str[ 5] : 7 arr[ 5] : 7
str[ 6] : 3 arr[ 6] : 3
str[ 7] : 7 arr[ 7] : 7
str[ 8] : 12 arr[ 8] : 12
str[ 9] : 12 arr[ 9] : 12
str[10] : 12 arr[10] : 12
str[11] : 12 arr[11] : 12
str[12] : 1 arr[12] : 1
str[13] : 10 arr[13] : 10
str[14] : 12 arr[14] : 12
str[15] : 12 arr[15] : 12
str[16] : 12 arr[16] : 12
str[17] : 12 arr[17] : 12
str[18] : 7 arr[18] : 7
str[19] : 3 arr[19] : 3
str[20] : 7 arr[20] : 7
str[21] : 3 arr[21] : 3
在这种情况下,如果您查看日志,您会发现
EditText number1 = (EditText)v.findViewById(R.id.edit1);
EditText number2 = (EditText)v.findViewById(R.id.edit2);
错误强>