Идея такова,чтобы спарсить страницу сайта с новостями со скидками. Для этих целей написал адаптер который имеет 2 переменные title и price. так вот мне нужно чтобы каждая новость в listView имела 2 параметра: НАЗВАНИЕ и СКИДКА. Только не знаю,как это реализовать в методе doInBackgroung.Помогите плиз.
public class PromoActivity extends Activity {
public static final String TAG = "myLogs";
public ArrayList<News> newsList = new ArrayList<>();
private ListView lv;
public ProgressDialog pd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_promo);
}
public class Parse extends AsyncTask<String, Void, ArrayList<News>> {
protected ArrayList<News> doInBackground(String... Params) {
Document doc;
Elements title;
Elements price;
try {
doc = Jsoup.connect("http://www.groupon.pl/oferta/krakow").get();
Log.d(TAG, "Pobrano stronę");
price = doc.select(".deal-price");
title = doc.select(".deal-tile-content");
String p = String.valueOf(price);
String t = title.toString();
newsList.clear();
// ЧТО ДОЛЖНО БЫТЬ СДЕСЬ?
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
protected void onPostExecute(ArrayList<News> result) {
lv = (ListView) findViewById(R.id.lv);
lv.setAdapter((new MyAdapter(PromoActivity.this,
R.layout.list_item, result)));
pd.dismiss();
}
}
public void ok(View v) {
pd = ProgressDialog.show(PromoActivity.this, "Pobieranie...", "proszę czekać", true, false);
Log.d(TAG, "Button clicked");
sprawdzPolaczenie(v);
}
public void sprawdzPolaczenie(View view) {
ConnectivityManager connMgr = (ConnectivityManager)
getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
new Parse().execute();
} else {
Toast.makeText(PromoActivity.this, "Sprawdź polączenie z internetem", Toast.LENGTH_LONG).show();
pd.dismiss();
}
}
Это адаптер:
public class MyAdapter extends BaseAdapter {
Context ctx;
LayoutInflater lInflater;
static List<News> objects;
public Context context;
public MyAdapter(Context context, int item, List<News> newsList) {
ctx = context;
objects = newsList;
lInflater = (LayoutInflater) ctx
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int position) {
return objects.get(position);
}
@Override
public long getItemId(int position) {
return objects.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
view = lInflater.inflate(R.layout.list_item, parent, false);
}
News n = getNews(position);
((TextView) view.findViewById(R.id.tvName)).setText(n.mTitle);
((TextView) view.findViewById(R.id.tvPrice)).setText(String.valueOf(n.mPrice));
return view;
}
News getNews(int position) {
return ((News) getItem(position));
}
и сообственно сам класс News:
public class News {
String mTitle;
String mPrice;
public News(String title,Double price){
mTitle = title;
mPrice = price;
}