私はここに1つの変なコードを持っています。私も名前を付けることはできません。それは自分で誤解されてしまいます。奇妙なコードの変数へのアクセス
String [] x = new String[1];
someWorkableMethod(new CoolClass()
{
@Override
public void Something(String s) {
x[0] = s;
}
});
p.s.とにかく構文エラーはありません。 実際に変数sはnullではありませんが(Log.dは正常な結果を返します)、Log.d(x [0])にしようとするとExceptionを返しますそのx [0]はnullです。 Something()のx [0]にsの値を書き込む方法は?ご協力ありがとうございます! )
必要に応じてフルコード。新しく宣言CoolClass
で
public class Connection {
private String key = "SMTH";
private static final String BASE_URL = "SMTH";
AsyncHttpClient client = new AsyncHttpClient();
private String post(String url, RequestParams params, AsyncHttpResponseHandler Handler) {
client.post(url, params, Handler);
//client.
return "";
}
public String createAuth(String login, String password, String device) {
RequestParams params = new RequestParams();
params.put("login", login);
params.put("password", password);
params.put("device", device);
params.put("key", this.key);
params.put("method", "createAuth");
final String[] res = new String[1];
post(BASE_URL, params, new TextHttpResponseHandler(){
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBytes, Throwable throwable) {
super.onFailure(statusCode, headers, responseBytes, throwable);
}
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBytes) {
super.onSuccess(statusCode, headers, responseBytes);
}
@Override
public void onFailure(int i, Header[] headers, String s, Throwable throwable) {
}
@Override
public void onSuccess(int i, Header[] headers, String s) {
Log.d("LoginActivity", s);
res[0] = s.toString();
}
});
// Log.d("LoginActivity", res[0]);
return res[0];
}
}
つまり、Something()のx変数にアクセスできません。私はアクセスする必要があります。たとえば、クラスでは、これで何かを得ることができます。私はそれに似た解決策を探しています。 – MrGeorgeous
'someWorkableMethod()'の本文を投稿できますか? –
Sasha、編集したバージョンの質問をご覧ください。サポートしてくれてありがとうございます – MrGeorgeous