我的 android 应用程序使用单个 Activity 来创建一个未在清单中定义的 SurfaceView,并且我的所有 UI 元素都是自定义的。现在我正在尝试进行异步 HTTP 调用,但我无法访问我的应用程序的任何类。我看到的异步 http 调用的每个示例都如下所示:
class RequestTask extends AsyncTask<String, String, String>{
@Override
protected String doInBackground(String... uri) {
// Code to make http call
return responseString;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
TextView txt = (TextView) findViewById(R.id.output);
// format the result and write it to the TextView object
}
}
在该示例中,由于 RequestTask 无权访问任何应用程序对象,因此您可以使用 findViewByID 来获取它们。我不明白的是,如果我的清单中没有定义任何视图,我该如何访问我的应用程序的对象?我的清单中唯一的东西是活动:
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.blah.blah.MyActivity"
android:label="@string/app_name" >
android:configChanges="keyboardHidden|orientation" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
我这样做是为了简单/懒惰,到目前为止效果很好。有没有办法在不使用 findViewById 的情况下访问我的应用程序(活动或其中定义的视图或我实例化的其他类),或者我是否需要在清单中定义我的 SurfaceView?