aSyncタスクを使用してHTMLデータをマイニングするアプリがありますが、アプリでTabHostを操作しようとするまでは正常に機能していました。このタブを開こうとすると、ProgressDialogがポップアップしますが、しばらくするとdoInBackground
メソッド内のキャッチに入り、例外はNullPointではなくnullにe=null
なり、アダプターにからのデータが設定されません。マイニング。ここにいくつかのコードがあります:
onCreate(){
...
this.pd = ProgressDialog.show(this, "Downloading..",
"Downloading...", true, false);
this.pd.setCanceledOnTouchOutside(false);
this.pd.setCancelable(true);
...
task = new DownloadTask().execute("Starting");
}
と
private class DownloadTask extends AsyncTask<String, Void, Object> {
protected Object doInBackground(String... args) {
search = new Search(person);
try {
search.Login();
data = search.ParseData();
} catch (Exception e) {
erroUnknown = true;
}
adapter = new RowAdapter(DataActivity.this, data);
}
}
そしてtabActivity:
public class TabMenu extends TabActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.menu);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, DataActivity.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost
.newTabSpec("data")
.setIndicator("Data",
res.getDrawable(R.drawable.ic_launcher))
.setContent(intent);
tabHost.addTab(spec);
//Just test
spec = tabHost
.newTabSpec("artists")
.setIndicator("Artists",
res.getDrawable(R.drawable.ic_launcher))
.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
}
}
なぜそれがキャッチブロックに入るのか考えていますか?tabActivityを使用するときに、いくつかのコードを適応させる必要がありますか?
前もって感謝します
更新:デバッグ中に、entity.getContent()からe = IllegalStateExceptionが発生しました。これは、初めて呼び出された場合でも同様です。コンテンツが正しいデータをフェッチしていないため、つまり、ログインしてページを機能させるタブがないため、StringOutOfBoundsExceptionが発生しますが、tabHostを使用すると、タブホストによってどのように影響を受けますか?