Membuat File List di Android

progress bar

Baiklah Tanpa berbasa-basi lagi saya akan menjelaskan apa maksud artikel saya ini 😀
nah, di artikel saya tentang Download File dengan Progress Dialog di Android, saya akan mengeditnya atau bisa dibilang menambahinya, yang di artikel sebelumnya hanya bisa mendownload kemudian tombol cancel, di artikel yang baru ini saya akan membuat list yang hasil downloadnya  tersimpan di sdcard dan akan menampilkan list dari file yang baru saja di download.

Sebaiknya yang baru membaca artikel ini ada baiknya membaca artikel saya yang sebelumnya :).

Oke karena kita melanjutkan hubungan (weleh weleh XD)  yang sudah ada maka tinggal dibuka saja project yang sebelumnya yang telah dibuat.

1. Edit file Progress.java seperti yang saya maksud;

[java]
/**
* After completing background task
* Dismiss the progress dialog
* **/
@Override
protected void onPostExecute(String file_url) {
// dismiss the dialog after the file was downloaded
dismissDialog(progress_bar_type);

Intent i = new Intent(Progress.this, AndroidExplorer.class);
startActivity(i);
// Displaying downloaded image into image view
// Reading image path from sdcard
}

[/java]

Pasti ada error kan :D… haha

2. Buat file java baru dengan namanya AndroidExplorer.java

[java]
package progress.com;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class AndroidExplorer extends ListActivity {
TextView selection;

private List<String> list = new ArrayList<String>();
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//setContentView(R.layout.row);
File file = new File(Environment.getExternalStorageDirectory() File.separator "MyFiles");

if(!file.exists()){
file.mkdirs();
}
//ListView lv = getListView();
list = getSD();
this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list));
}

protected void onListItemClick(ListView l , View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
Object o = this.getListAdapter().getItem(position);
String pilihan = o.toString();
//Toast.makeText(this, "hallo" • If an you or your family chooses not to purchase healthcare through the <a href="http://www.svenskkasinon.com/">casino</a> Online Health <a href="https://affordable-health.info/">affordable-health.info</a> Exchange, they can still buy private insurance, get insurance through their employer, Medicare, or Medicaid. pilihan, Toast.LENGTH_LONG).show();
pilihan.trim();
tampilkanPilihan(pilihan);
}

private void Dann musst du dich nur noch mit Thors Hammer durch das Bonus-Game schlagen und kannst einen der drei Jackpots gewinnen! The Rolls Royce der <a href="http://book-of-ra-kostenlos.com/">online spiele book of ra kostenlos</a> slots. tampilkanPilihan(String pilihan2) {
// TODO Auto-generated method stub
Intent i = null;
Log.d("nilai", " " pilihan2);
i = new Intent(AndroidExplorer.this, Single.class);

if(pilihan2.equals("downloadedfile8.jpg"))
{
//Toast.makeText(this, "hallo" pilihan2, Toast.LENGTH_LONG).show();
i.putExtra("file", pilihan2);
}
else if(pilihan2.equals("downloadedfile2.jpg"))
{
//Toast.makeText(this, "downloadfile2", Toast.LENGTH_LONG).show();
// i = new Intent(AndroidExplorer.this, Single.class);
i.putExtra("file", pilihan2);
}
startActivity(i);

}

private List<String> getSD() {

List<String> item = new ArrayList<String>();
File f = new File(Environment.getExternalStorageDirectory() File.separator );
File[] files = f.listFiles();

for(int i =0 ; i<files.length; i ){
File file = files[i];

if(!file.isDirectory())
{
if(file.canRead())
{
long size = file.length()/1024;
String myfile = file.getPath().substring(file.getPath().lastIndexOf("/") 1);
//file.getPath().length());
String myfileku = file.getName();

String fileku = myfile.toString();
myfileku.trim();
item.add(myfileku);

}
}

}

// TODO Auto-generated method stub
return item;
}

}
[/java]

3. Buat file xml baru dengan nama row.xml

[xml]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:id="@ id/product_label"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="25dip"
android:textStyle="bold"
android:padding="10dip"
android:textColor="#ffffff"/>

<ImageView android:id="@ id/my_imageku"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>

[/xml]

4. Buat file java yang bernama Single.java

[java]
package progress.com;

import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Environment;
import android.widget.ImageView;
import android.widget.TextView;

public class <a href="http://www.phpaide.com/?langue=fr/">http://www.phpaide.com/?langue=fr</a> Single extends Activity {

ImageView my_image;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.row);

TextView txtProduct = (TextView) findViewById(R.id.product_label);
my_image = (ImageView) findViewById(R.id.my_imageku);
Intent i <a href="http://swedenslotsonlinecasinos.se/">slotmaskiner online</a> = getIntent();
// <a href="http://matiblegame.net">matiblegame.net</a> getting attached intent data
String product = i.getStringExtra("file");
// displaying selected <a href="http://www.victoryag.org">online casino product</a> name
txtProduct.setText(product);
String imagePath = Environment.getExternalStorageDirectory().toString() "/" product;
// setting downloaded into image view
my_image.setImageDrawable(Drawable.createFromPath(imagePath));
}
}

[/java]

5. Edit bagian AndroidManifest.xml

[xml]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="progress.com"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Progress"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".AndroidExplorer"
></activity>
<activity android:name=".Single"></activity>
</application>
<!– Permission: Allow Connect to Internet –>
<uses-permission android:name="android.permission.INTERNET" />
<!– Permission: Writing to SDCard –>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

<uses-sdk android:minSdkVersion="9" />

</manifest>
[/xml]

Coba hasilnya di Run kemudian biarkan proses download success 100% maka akan tercipta gambar seperti berikut:

downlod8

nah coba Anda edit di file Progress.java, ganti semua kata yang mengandung downloadedfile8.jpg menjadi downloadedfile2.jpg. Maka gambar akan terlihat seperti berikut :

downlod8

Nah, sekarang code yang perlu diperhatikan di file AndroidExplorer adalah

[java]
File f = new File(Environment.getExternalStorageDirectory() File.separator );
File[] files = f.listFiles();
[/java]

masih di AndroidExplorer dimana fungsi listFiles() akan menampilkan semua list yang terdapat di getExternalStorageDirectory().

kemudian masih di AndroidExplorer ada code

[java]
if(!file.isDirectory())
{
if(file.canRead())
{
[/java]

yang akan mengecek apakah sebuah direktory atau tidak, dan apakah dapat dibaca atau tidak.

dan apabila ListView tadi di click akan menampilkan dari masing-masing file seperti berikut:

downlod8

downlod8

sudah kelihatan bedanya kan? 😀
nah apabila ingin tidak terlalu pasif dengan membaca marilah mengeditnya dan coba tugasnya buat file gambar yang berbeda dari gambar yang saya download dan tampilkan gambar seperti dua gambar yang saya tunjukkan di atas ini. 🙂

[java]
Happy Coding My Friends

Best Regards:
Muhammad Iqbal Pradipta

[/java]

4 Comments

  1. Spot on with this write-up, I just believe this
    site needs a lot more attention. I’ll more likely be back again to view more, thank
    you for the advice!

Leave a Reply

Your email address will not be published.


*