すべて - ユーザーがスピナーで選択した内容に応じて、21 の異なるアドレスからデータを解析しています。たとえば、ユーザーが「Eldora」を選択した場合、解析元の Web サイトはhttp://www.coloradoski.com/resorts/eldoraです。ただし、「Copper」を選択すると、http://www.coloradoski.com/resorts/copperから解析する必要があります。問題は、実際のタグではなく、アドレスのみが変更されることです。したがって、すべてを 21 の異なるクラスにコピーしてアドレスを変更するだけで済みますが、実際のタグではなく、ユーザーの選択に基づいてアドレスを変更する方法があるようです。これが私のコードです:
class AddStringTask extends AsyncTask<Void, String, Void> {
ProgressDialog progressDialog;
@Override
protected void onPreExecute()
{
progressDialog= ProgressDialog.show(MainActivity.this, "Loading Data","Getting from http://eldora.com/", true);
//do initialization of required objects objects here
};
@Override
protected Void doInBackground(Void... unused) {
org.jsoup.nodes.Document doc = null;
try {
doc = Jsoup.connect("http://www.coloradoski.com/resorts/eldora").get();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
docTitle = doc.select("div#column-narrow.grid_310.alpha h1").first().text();
AnnualSnowfallString = doc.select("dl#mountain-stats dt + dd").first().text();
AreaString = doc.select("dl#mountain-stats dt + dd + dt + dd ").first().text();
BaseElevationString = doc.select("dl#mountain-stats dt + dd +dt + dd + dt + dd").first().text();
SummitElevationString = doc.select("dl#mountain-stats dt + dd + dt + dd + dt + dd + dt + dd").first().text();
HoursofOperationString = doc.select("dl#mountain-stats dt + dd + dt + dd + dt + dd + dt + dd + dt + dd").first().text();
SeasonDatesString = doc.select("dl#mountain-stats dt + dd + dt + dd + dt + dd + dt + dd + dt + dd + dt + dd").first().text();
NotesString = doc.select("dl#mountain-stats dt + dd + dt + dd + dt + dd + dt + dd + dt + dd + dt + dd + dt + dd").first().text();
return null;
}
dl#mountain-stats dt + dd + dt + dd
はサイトごとに変わるのではなく、アドレスだけです。ユーザーの選択に基づいてそれのみを変更する方法についてのアイデアはありますか?