1

私はAsyncTaskクラスを使用していました...私の目的はリストを作成することであり、検索ボタンをクリックすると、検索中に「検索中...」文字列がリストに表示されます...そのためにonPreExecute()内にアダプターをインスタンス化しようとしました

private class SearchTask extends AsyncTask<Void, Void, Void>{

        protected void onPreExecute() {
            String[] strings = new String[] { "Searching" };
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, strings);


            mSearchButton.setEnabled(false);
        }
                //rest of methods
}

コンパイラは私にエラーを与えますnew ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, strings);

そしてそれは言う:The constructor ArrayAdapter<String>(SearchActivity.SearchTask, int, ArrayList<String>) is undefined

これを解決する方法はありますか?

4

4 に答える 4

1

パラメータが正しくありません。ドキュメントをご覧ください。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(YourActivity.this,      
                   android.R.layout.simple_list_item_1, strings);
于 2012-08-13T02:15:20.720 に答える
1

SearchActivity.SearchTaskActivity(またはContextより一般的なシナリオでは)ではないためです。のサブクラス型のオブジェクトを参照しているSearchActivity.thisだけではなく、を使用する必要があります。thisSearchActivity.SearchTask AsyncTask

于 2012-08-13T02:15:30.437 に答える
1

パラメータが間違っているため、ArrayAdapter adapter = new ArrayAdapter(this、android.R.layout.simple_list_item_1、strings);

(context、int、object [])

'this'を入力しますが、'this'はコンテキストではありません。

SearchTaskで「this」を使用する場合、それはコンテキストではないことを意味します。

したがって、「this」の代わりに「getparent()」を使用します

于 2012-08-13T02:17:40.687 に答える
1

私はそれがの問題だと思いthisます。

にメンバー変数を追加しますSearchActivity

private Context mContext = this;

次に変更します。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, strings);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1, strings);
于 2012-08-13T02:18:01.297 に答える