Android 为什么我不能实例化新变量?
我正在使用AsyncTask类。。。我的目标是有一个列表,当点击搜索按钮时,使“搜索…”字符串在搜索时出现在列表中。。。为此,我尝试在onPreExecute()中实例化一个适配器Android 为什么我不能实例化新变量?,android,android-asynctask,instantiation,Android,Android Asynctask,Instantiation,我正在使用AsyncTask类。。。我的目标是有一个列表,当点击搜索按钮时,使“搜索…”字符串在搜索时出现在列表中。。。为此,我尝试在onPreExecute()中实例化一个适配器 私有类SearchTask扩展了异步任务{ 受保护的void onPreExecute(){ 字符串[]字符串=新字符串[]{“搜索”}; ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,字符串); mSearchButt
私有类SearchTask扩展了异步任务{
受保护的void onPreExecute(){
字符串[]字符串=新字符串[]{“搜索”};
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,字符串);
mSearchButton.setEnabled(false);
}
//其他方法
}
编译器在newarrayadapter中给了我一个错误(这是android.R.layout.simple\u list\u item\u 1,字符串)代码>
它说:构造函数ArrayAdapter(SearchActivity.SearchTask,int,ArrayList)未定义
有没有办法解决这个问题?参数不正确。看看
ArrayAdapter=新的ArrayAdapter(YourActivity.this,
android.R.layout.simple_list_item_1,字符串);
参数不正确。看看
ArrayAdapter=新的ArrayAdapter(YourActivity.this,
android.R.layout.simple_list_item_1,字符串);
因为SearchActivity.SearchTask
不是活动
(或者在更一般的场景中是上下文
)。您应该使用SearchActivity.this
而不是简单地引用类型为SearchActivity.SearchTask
的子类的this
因为SearchActivity.SearchTask
不是活动
(或者在更一般的场景中是上下文
)。您应该使用SearchActivity.this
而不是简单地引用类型为SearchActivity.SearchTask
的子类的this
因为您的参数错误
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,字符串)
(上下文、int、对象[])
您输入了“this”,但“this”不是上下文
如果在SearchTask中使用“this”,则表示不在上下文中使用
因此,您使用了“getparent()”而不是“this”,因为您的参数是错误的
ArrayAdapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,字符串)
(上下文、int、对象[])
您输入了“this”,但“this”不是上下文
如果在SearchTask中使用“this”,则表示不在上下文中使用
因此,您使用“getparent()”而不是“this”我想这是this
的问题
在SearchActivity
中添加成员变量:
private Context mContext = this;
然后改变:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, strings);
ArrayAdapter adapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,字符串);
到
ArrayAdapter=新的ArrayAdapter(mContext,android.R.layout.simple\u list\u item\u 1,字符串);
我想这是的问题
在SearchActivity
中添加成员变量:
private Context mContext = this;
然后改变:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, strings);
ArrayAdapter adapter=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,字符串);
到
ArrayAdapter=新的ArrayAdapter(mContext,android.R.layout.simple\u list\u item\u 1,字符串);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1, strings);