getText无法访问

时间:2015-01-14 08:04:28

标签: android android-edittext textview

editText作为checkMQTTResources传递给方法view,并对传递给此方法的每个视图的ID进行switch-case checkMQTTResources

如下所示,尝试访问每个视图的getText方法,但在使用自动完成功能时不允许或不显示。

为什么我不能使用'getText'?

代码

    btnStubView_Connect.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            checkMQTTResources(etStubView_ip);
        }
    });
}
protected void checkMQTTResources(View view) {
    // TODO Auto-generated method stub
    switch(view.getId()) {

    case R.id.etSubView_ip:
        view.gettext //gettext is not allowed here, why?
        break;
    case R.id.etSubView_port:
        break;
    case R.id.etSubView_clientID:
        break;
    case R.id.etSubView_KATimer:
        break;
    }
}

4 个答案:

答案 0 :(得分:2)

您错过了typecast viewEditText

((EditText)view).getText();

答案 1 :(得分:1)

解决问题的两种方法。

  1. 首先将您的View投放到EditText,然后致电getText()

  2. 自己接收EditText

答案 2 :(得分:1)

  

为什么我不能使用'getText'

因为该方法接受View,而EditTextView,您将能够访问更通用类的公共方法{{1} } class,没有这样的方法View

要解决此问题,您应该将视图转换(转换)为EditText,例如:

getText()

或接受((EditText)view).getText().toString(); 作为参数而不是EditText

View

答案 3 :(得分:1)

View是视图层次结构中的顶级类

java.lang.Object
   ↳    android.view.View
       ↳    android.widget.TextView
           ↳    android.widget.EditText

查看没有getText()方法,基本上它是在android.widget.TextView中定义的。调用getText()方法需要向下转换