2

何らかの理由で、asynctask 関数でユーザーの電話情報を取得したいと考えています。

ここに私のasynctaskコードがあります

package com.example.myfirstapp;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Calendar;

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import android.os.AsyncTask;
import android.util.DisplayMetrics;
import android.util.Log;
public class RequestTask extends AsyncTask<String, String, String>{
@Override

protected String doInBackground(String... uri) {
    ...my code
}



@Override
protected void onPostExecute(String result) {
    super.onPostExecute(result);
    //Do anything with response..
}

private  String getWeith(String url) {  
    DisplayMetrics dm = new DisplayMetrics();  
    getWindowManager().getDefaultDisplay().getMetrics(dm);  
    int width = dm.widthPixels;
    int height = dm.heightPixels;  
    String w=new String(""+width);
    String h=new String(""+height);
    url=url+"&23=w%3A"+w+"%20h%3A"+h+"%20d%3A"; 
    return url;
}  
}

エラー メッセージは、「メソッド getWindowManager() はタイプ RequestTask に対して未定義です」を示しています。

しかし、私が知っていることはすべてインポートしようとしました...そして、この「getWeith()」関数は私のメインアクティビティで動作します。助けてください、ありがとう。

4

2 に答える 2

3

メソッドgetWindowManager()AsyncTaskを持たない を拡張しています。このメソッドが定義されているオブジェクトへのアクセスが必要です。

RequestTaskしたがって、アクティビティをオブジェクトに渡し、getWindowManager()そのアクティビティを呼び出してみてください。

于 2013-08-12T03:08:15.617 に答える