2017-04-24 23 views
0

私は単純なリストビューを作成したいと思っています。それをクリックするとpdfファイルをダウンロードできます。 私はそれをするのに長い時間をかけましたが、失敗しました。pdfファイルをダウンロードするにはlistviewを作成するには?

これは私のアプリのためのxmlレイアウトですので、間違っている場合は教えてください。私はアンドロイドのスタジオで

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.asus.myapplication.develop1_list_progrme"> 
    <include layout="@layout/toolbar" 
     android:id="@+id/my_toolbar"></include> 
    <ImageView 
     android:id="@+id/imageView5" 
     android:layout_width="match_parent" 
     android:layout_height="260sp" 
     android:background="#C3E2DC" 
     app:srcCompat="@drawable/progra_2" 
     android:layout_below="@+id/my_toolbar" 
     android:layout_alignParentStart="true" 
     tools:ignore="ContentDescription" /> 
    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_below="@+id/imageView5" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="16dp"> 
    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     tools:ignore="ScrollViewSize"> 



    <ListView 
     android:id="@+id/list_pro" 
     android:layout_width="300sp" 
     android:layout_height="380sp" 
     android:nestedScrollingEnabled="true" 
     android:layout_marginTop="13dp" 
     android:layout_marginRight="40sp" 
     android:scrollbarSize="20sp" 
     android:layout_marginLeft="10sp" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentStart="true" 
     tools:ignore="NestedScrolling,RtlHardcoded" /> 


</RelativeLayout> 
    </ScrollView> 
</RelativeLayout> 
package com.example.asus.myapplication; 

import android.app.DownloadManager; 
import android.app.SearchManager; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.graphics.Color; 
import android.net.Uri; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.AlertDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.SearchView; 
import android.support.v7.widget.Toolbar; 
import android.util.TypedValue; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

public class develop1_list_progrme extends AppCompatActivity { 
    DownloadManager downloadManager; 
    ListView mListView_pro; 
    private String [] pro ={"Chapter 1: Introduction ", "Chapter 2: Basic definitions", "Chapter 3: Numerical conversions","Chapter 4: Logical gates"}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_develop1_list_progrme); 
     ListView mListView_pro = (ListView)findViewById(R.id.list_pro); 
     Toolbar my_toolbar= (Toolbar) findViewById(R.id.my_toolbar); 
     setSupportActionBar(my_toolbar); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 
     getSupportActionBar().setTitle("Semester(2)"); 
     getSupportActionBar().setSubtitle("أساسيات برمجة"); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, android.R.id.text1, pro){ 
      @Override 
      public View getView(int position, View convertView, ViewGroup parent){ 
       /// Get the Item from ListView 
       View view = super.getView(position, convertView, parent); 

       TextView tv = (TextView) view.findViewById(android.R.id.text1); 
       tv.setHeight(200); 
       tv.setMinimumHeight(200); 
       // Set the text size 25 dip for ListView each item 
       tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP,25); 

       // Return the view 
       return view; 
      } 
     }; 

     mListView_pro.setAdapter(adapter); 
     mListView_pro 
       .setOnItemClickListener(new AdapterView.OnItemClickListener() { 


        @Override 
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
         if(position == 0) { 


           downloadManager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); 
           Uri uri = Uri.parse("https://letterless-pulls.000webhostapp.com/itro_pro.pdf"); 
           DownloadManager.Request request = new DownloadManager.Request(uri); 
           request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
           Long reference = downloadManager.enqueue(request); 

         } 

新しい午前、まず私

+1

あなたはリストビューを作成します。タッチリスナーを追加します。クリックするとダウンロードします。それはとても複雑ですか?さらに、何が失敗したか?エラーはありますか? oyuに適切な権限があることを確認しましたか?(インターネット、WRITE_EXTERNAL_STORAGEなど) – Zoe

答えて

0

を助けるためのコードを欠いての、この答えのいくつかの部分は基本的に推測されてください。あなたのマニフェストに


、以下の行を追加します。これで問題が解決しない場合は(存在する場合にクラッシュがある場合は/)、の質問に、あなたのマニフェストとスタックトレースを追加してください

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 


は、ファイルをダウンロードするのより多くの詳細な説明のためにCommonsWareでthis github repoを参照してください。

関連する問題