Я - совершенно новый разработчик. Я создаю приложение с AndroidStudio, которое читает XML-файл с сервера с помощью PullParser. Мне нужно загрузить file.zip из ссылки xml, и когда я нажимаю кнопкуDownload (внутри raw Layout listView), он должен начать загрузку файла. Вот код моей схемы строк моего SiteAdapter.Скачать файл с XMLPullParser
public View getView(final int pos, final View convertView, final ViewGroup parent){
RelativeLayout row = (RelativeLayout)convertView;
Log.i("AtlantisSites", "getView pos = " + pos);
//ViewHolder mainViewHolder = null;
ViewHolder viewHolder;
if(null == row){
//No recycled View, we have to inflate one.
LayoutInflater inflater =(LayoutInflater)parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = (RelativeLayout)inflater.inflate(R.layout.row_site, null);
viewHolder = new ViewHolder();
viewHolder.btnDownload = (Button) row.findViewById(R.id.btnDownload);
viewHolder.btnDownload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Integer pos=(Integer)v.getTag();
Log.i("AtlantisSites", "getView pos = " + pos);
String url = getItem(pos).getLink();
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
}
});
row.setTag(viewHolder);
} else{
viewHolder = (ViewHolder) row.getTag();
}
viewHolder.btnDetails.setTag(getItem(pos));
public class ViewHolder{
Button btnDownload;
Button btnDetails;
}
и здесь есть класс, где я должен вызвать getLink(), чтобы начать загрузку file.zip
public class DownloadZip {
public void DownloadFromUrlZip(){
try {
URL url = new URL (s);
HttpURLConnection c = (HttpURLConnection)url.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
String Path = Environment.getExternalStorageDirectory() + "/download/";
Log.v("AtlantisSites", "PATH: " + Path);
File file = new File(Path);
file.mkdirs();
FileOutputStream fos = new FileOutputStream("AtlantisIssue.zip");
InputStream is = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = is.read(buffer)) != -1) {
fos.write(buffer, 0, len1);
}
fos.close();
is.close();
} catch (IOException e) {
Log.d("AtlantisSites", "Error: " + e);
}
Log.v("AtlantisSites", "Check: ");
}
После загрузки я должен распаковать файл и сохранить его во внутренней памяти. Дело в том, что я не знаю, как вызвать getLink(), чтобы начать загрузку с него. Я пробовал много раз и много. Я застрял на нем.
Пожалуйста, любая помощь будет действительно оценена.