【问题标题】:Can not resolve int in onClick ( View view ) method无法解析 onClick(查看视图)方法中的 int
【发布时间】:2015-09-26 02:11:44
【问题描述】:

谁能帮我解决这个问题?

public class Pin extends ActionBarActivity implements View.OnClickListener {

    Button btn_pin;
    EditText input_pin;
    int Pin;

    UserLocalStore userLocalStore;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        btn_pin = (Button) findViewById(R.id.btn_pin);
        int Pin = Integer.parseInt(input_pin.getText().toString());
        input_pin = (EditText) findViewById(R.id.input_pin);

        btn_pin.setOnClickListener(this);

        userLocalStore = new UserLocalStore(this);
    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.btn_pin:
                int Pin = Integer.parseInt(input_pin.getText().toString());
                User user = new User(Pin);

                authenticate(user);
                break;
        }
    }

int Pin 的行有错误。我不知道如何解决这个问题对我有帮助吗?

错误:(42, 29) 错误: 没有为 User(int) 找到合适的构造函数 构造函数 User.User(String,String) 不适用 (实际参数列表和形式参数列表的长度不同) 构造函数 User.User(String,String,int,int,String,String) 不适用 (实际参数列表和形式参数列表的长度不同)

它说 Error:(41, 38) error: cannot find symbol variable Pin 我怎么能找到它并使它正确。?

【问题讨论】:

  • 请发布您在该行遇到的错误
  • 我同意@iagreen。该错误是NumberFormatExceptionError 吗?如果是,那么input_pin.getText().toString()返回的字符串不是数字。

标签: android


【解决方案1】:
btn_pin = (Button) findViewById(R.id.btn_pin);
int Pin = Integer.parseInt(input_pin.getText().toString());
input_pin = (EditText) findViewById(R.id.input_pin);

你应该在findViewById之后使用input_pin,否则你会得到一个NullPointerException

【讨论】:

  • 它说User类没有构造函数User(int) ,检查User的实现?
【解决方案2】:
Error:(42, 29) error: no suitable constructor found for User(int) constructor User.User(String,String) is not applicable (actual and formal argument lists differ in length) constructor User.User(String,String,int,int,String,String) is not applicable (actual and formal argument lists differ in length)

这意味着当您想要使用 int 时需要更改您的用户。你声明了

int Pin;

作为一个全局变量。然后,您必须在源代码的其余部分中使用它,而不使用“int”类型。例如:

改变

int Pin = Integer.parseInt(input_pin.getText().toString());

进入

  Pin = Integer.parseInt(input_pin.getText().toString());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多