现在的位置: 首页 > 综合 > 正文

通过findViewById()方法从layout中获取view并进行相应的转换时提示:”Cannot cast from View to AutoCompleteTextView”的解决办法!

2017年09月15日 ⁄ 综合 ⁄ 共 890字 ⁄ 字号 评论关闭

代码:

package zyz.example.autocompletetextview;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;

public class AutoCompleteTextView extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
         
        AutoCompleteTextView textView = (AutoCompleteTextView)findViewById(R.id.autocomplete_country);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item, COUNTRIES);
        auttextView.setAdapter(adapter);
    }
    

第14行提示错误:“Cannot cast from View to AutoCompleteTextView”,从而也导致第16行发生错误。

细查原因,未发现有拼写错误。

上网搜索,有说可能是未导入相应的包,可明明已经按过组合键“ctrl+shift+O”导入了可能的包了。

也有说根本不能这么转换,扯,搞android开发的都是在用这个方法啊!

再细看,恍然,原来定义的类名跟调用的函数名一模一样,冲突了,怪不得呢!!!

经修搞改类名后,错误排除!!!!!

ok!!!!!!

需要注意的是

(1)改完类名后可能需要相应的改动“.java”文件的名称
(2)改动完成后,再按一次组合键“ctrl+shift+O”,确保导入了所需的包。因为之前的名称冲突可能导致你并未导入正确的包。
(3)记得保存一下修改结果!

谨记!

抱歉!评论已关闭.